目前,我在一個單元格中使用 spark 資料框(自動加載器)時遇到了一些問題,可能需要一些時間來寫入資料。然后,在下面的單元格中,代碼參考了第一個表所做的作業。但是,如果由于 spark 的分布式特性而運行整個筆記本(特別是作為作業),則第二個單元在第一個單元完全完成之前運行。如何讓第二個單元等待 writeStream 的完成而不將它們放在單獨的筆記本中。
例子:
單元格1
autoload = pysparkDF.writeStream.format('delta')....table('TABLE1')
單元格2
df = spark.sql('select count(*) from TABLE1')
uj5u.com熱心網友回復:
您需要使用awaitTermination函式來等待流處理完成(請參閱檔案)。像這樣:
- 單元格 1
autoload = pysparkDF.writeStream.format('delta')....table('TABLE1')
autoload.awaitTermination()
- 單元格 2
df = spark.sql('select count(*) from TABLE1')
盡管使用以下內容可能會更容易和更難出錯:
df = spark.read.table('TABLE1').count()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/419848.html
標籤:
