我們有許多並發的情況Azure Datafactory筆記本運行在一個磚集群互動(Azure E8係列司機,1 - 10 E4係列驅動程序自動定量)。
每個筆記本讀取數據,一個dataframe.cache()來創建一些計數之前/之後運行dropDuplicates()為度量日誌記錄/數據質量的目的,像SSIS。
幾小時後,工作在集群上就會失敗,然後集群需要重啟。我認為原因是緩存。
推薦使用嗎spark.catalog.clearCache ()在每個筆記本(這是否影響其他在集群上運行工作?),或者有其他的想法更好的集群緩存清理嗎?
這個緩存動態保存到磁盤,如果沒有在內存中。所以我不認為這是一個問題。然而,最佳實踐是使用“unpersist()方法在代碼緩存。在下麵的例子中,我的答案,緩存/持久化方法僅僅是適當的時候運行多個操作相同的數據幀。你不需要它在其他情況下,3.0火花AQE和優化處理得更好。請檢查日誌集群衰落的原因。
df_cached = df.persist() #這是好多次緩存,因為我們將使用df_cached df1 = df_cached。some_actions_and_transformations df2 = df_cached。some_actions_and_transformations df3 = df_cached。some_actions_and_transformations #清理緩存df_cached.unpersist ()
這個緩存動態保存到磁盤,如果沒有在內存中。所以我不認為這是一個問題。然而,最佳實踐是使用“unpersist()方法在代碼緩存。在下麵的例子中,我的答案,緩存/持久化方法僅僅是適當的時候運行多個操作相同的數據幀。你不需要它在其他情況下,3.0火花AQE和優化處理得更好。請檢查日誌集群衰落的原因。
df_cached = df.persist() #這是好多次緩存,因為我們將使用df_cached df1 = df_cached。some_actions_and_transformations df2 = df_cached。some_actions_and_transformations df3 = df_cached。some_actions_and_transformations #清理緩存df_cached.unpersist ()