我使用一個大型文本變量,工作成單行JSON,火花可以美麗的過程。使用單個節點256 GB 32核心Standard_E32d_v4“集群”,這應該足夠內存數據集(沒見過集群內存使用超過130 GB)。但是我越來越崩潰”火花驅動程序意外停止並重新啟動……”There is no further info on the failure. This happens when writing an intermediate step to text file using:
str_variable dbutils.fs.put(“路徑/ filename.txt”,真的)
我試著寫/ tmp /以及Azure blob,相同的結果。
我開始向下一個gc調優路但還沒有算出了集群配置增加最大的堆大小,目前30 gb
任何有關這可能會導致什麼?不知道還能怎樣解決這個限製,因為我已經打破了管道分成intermediate-step-write,垃圾收集/重置內存狀態,繼續從中間,流
single_line_text_df.write @Vigneshraja Palaniraj我不相信。json是有效的。我試過了所有的str > > single_line_df > >文件組合。如果沒有dbutils。fs限製(不清楚為什麼低性能相對於python fileobject.write())然後我想唯一的其他考慮是str > > single_line_json_df處理' \ n ' spark.read.json一樣(“filepath”)
單線程dbutils也是如此。fs顯著不同於標準的Python
開放(f = '路徑/ newfile.txt ', ' w ') f.write (str_variable) f.close ()
這實際上很好工作,花了15秒,邊際內存使用量的增加。文本文件是8.3 gb。令人驚訝的dbutils。fs沒有可比性
我嚐試使用df文本。問題是字符串將在單個行,寫單行,讀回df單行(即使我插入換行創建一行JSON)。我一直在使用然後spark.read的理由。json是將文本轉換成json df一行。我很樂意將直接從大str > >一行JSON df沒有編寫文本,read-JSON操作直接但不知道怎麼做
single_line_text_df.write @Vigneshraja Palaniraj我不相信。json是有效的。我試過了所有的str > > single_line_df > >文件組合。如果沒有dbutils。fs限製(不清楚為什麼低性能相對於python fileobject.write())然後我想唯一的其他考慮是str > > single_line_json_df處理' \ n ' spark.read.json一樣(“filepath”)