取消
顯示的結果
而不是尋找
你的意思是:

火花DataFrame緩存的最佳實踐是什麼?

麥當娜
重視貢獻二世

你好,

當緩存DataFrame時,我總是用“df.cache () .count ()”。

然而,在這參考,建議保存緩存DataFrame到一個新的變量:

  • 當你緩存DataFrame為它創建一個新的變量cachedDF = df.cache ()。這將允許你繞過我們解決的問題在我們的例子中,有時還不清楚什麼是分析計劃,什麼是緩存。這裏,當你打cachedDF.select (…)它將利用緩存的數據。

我不明白背後的邏輯。我在其他文章中找不到類似的建議。

我的問題是使用緩存時的最佳實踐是什麼?

5回複5

werners1
尊敬的貢獻者三世

當使用緩存的最佳實踐是使用確保緩存。這就是大衛在你引用的文章解釋道。
通過將緩存的數據分配給一個新的df,您可以輕鬆地查看分析計劃,用於從緩存讀取。
如果你不指定緩存到一個新的df,這是更難的觀點,本文中的例子顯示了和你想象的緩存而不是使用。

麥當娜
重視貢獻二世

@werners1

謝謝你的幫助。

如果我分配緩存DataFrame到一個新的變量,我應該使用哪一個在未來細胞下轉換。例如,

  • cached_df = df.cache ()
  • cached_df.count ()

然後,下列哪一選項是正確的下轉換:

df2 = (df . join (…) .select (…)過濾器(…))

或者:

df2 = (cached_df . join (…) .select (…)過濾器(…))

Vinay_M_R
重視貢獻二世
重視貢獻二世

@Mado

每當我們想要展示我們能做緩存()的dataframe將確保這個df緩存。

也正如你所提到的新dataframe一旦緩存df_new,你可以unpersist前麵df緩存df_new之後。

Lakshay
尊敬的貢獻者三世
尊敬的貢獻者三世

除了其他評論,我隻會增加,僅在必要時確保你做緩存。即如果您需要保存的數據幀時間代碼的後半部分將引用,那麼您應該考慮做一個緩存。但是如果你的代碼隻有dataframe使用我們不需要做緩存。

不必要的可以添加的問題,而不是幫助。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map