簡體   English   中英

並行運行任務 - pyspark

[英]Running tasks in parallel - pyspark

我有一個 pyspark dataframe 並使用相同的 dataframe 創建新的數據幀並在最后加入它們。

例如:

source_dataframe = spark.createDataFrame(rdd, schema).cache()

df1 = function1(source_dataframe)
df2 = function2(source_dataframe)
df3 = function3(source_dataframe)
df4 = function4(source_dataframe)

每個 function 都是相互獨立的,最后將它們重新組合起來創建我的最終 dataframe。

final_df = df1.join(df2, [id]).join(df3, [id]).join(df4, [id])

pyspark 中有沒有一種方法可以並行運行上述所有功能,因為它們彼此獨立? 還是 spark 自動並行運行它們,因為它們彼此獨立?

任何幫助將不勝感激。 謝謝。

所以 spark 是延遲評估的,除非你在 function 中應用一個動作,否則不會評估任何東西。每當你應用一個轉換時,它只會被添加到 DAG 中,當你在最終的 df 上觸發一個動作時,所有的東西都會被評估。

因此,無需同時執行這些轉換。 Spark 在分發時為您完成。

另一點是,由於 spark 是分布式的並且工作負載分配給多個執行程序,如果您嘗試利用 python 的多處理,它會增加驅動程序節點上的負載,這可能導致 OOM 問題或執行緩慢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM