[英]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.