![](/img/trans.png)
[英]Apache Spark - foreach Vs foreachPartition When to use What?
[英]Apache Spark : When not to use mapPartition and foreachPartition?
我知道,當我們要為一組RDD而不是單個RDD元素初始化一些資源時,理想情況下,我們應該使用mapPartition和foreachPartition。 例如,在為每個數據分區初始化JDBC連接的情況下。 但是在某些情況下,我們不應該使用它們中的任何一個,而應該使用普通香草map()和foreach()轉換和操作。
當編寫使用mapPartition或foreachPartition的Spark作業時,您可以只修改分區數據本身,也可以分別遍歷分區數據。 作為參數傳遞的匿名函數將在執行程序上執行,因此沒有可行的方法來執行從所有特定執行程序調用所有節點的代碼,例如:df.reduceByKey。 只能從驅動程序節點執行此代碼。 因此,只有從驅動程序代碼中,您才能訪問數據框,數據集和Spark會話。
請在這里找到有關此問題的詳細討論以及可能的解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.