簡體   English   中英

pyspark rdd.map function 需要 3 分鍾在 32 行上運行

[英]pyspark rdd.map function takes 3 minutes to run on 32 rows

我有一個 csv 文件,我將其轉換為 pyspark dataframe 並使用以下命令過濾了汽車的獨特品牌:

df.select('make').distinct().collect()

這需要大約一秒鍾的時間來執行並從“制造”列返回 32 行獨特的汽車品牌。 但是當我嘗試使用以下命令將結果作為列表獲取時:

make_df.select('make').distinct().rdd.map(lambda x: x).collect()

執行大約需要 3 分鍾。 我是新手,所以我不確定幕后發生了什么才能表達出適當的問題。 幫助將不勝感激。

提前致謝

PySpark 中 RDD 操作的性能非常糟糕,因為驅動程序不知道您的 lambda 在做什么,因此沒有優化執行圖的可能性。

當使用 DataFrame API 時,Spark 確切地知道您想要做什么,因此可以優化執行。

視頻對該主題非常有幫助。

暫無
暫無

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

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