簡體   English   中英

在 pyspark RDD 上執行 map/reduce 時出現一些錯誤

[英]Getting some error while performing map/reduce on pyspark RDD

我只是想學習 PySpark,但對以下兩個 RDD 之間的區別感到困惑,我知道一個是類型集,一個是列表,但兩者都是 RDD

rdd = sc.parallelize([('a', 1), ('b', 1), ('a', 3)])
type(rdd)

rdd = sc.parallelize(['a, 1', 'b, 1', 'a, 3'])
type(rdd)

處理 map 和 reduce 函數的代碼:

priceMap= s.map(lambda o: (o.split(",")[0], float(o.split(",")[1])))
priceMap.reduceByKey(add).take(10)

我可以輕松地對第二個 rdd 數據執行 map/reduce function,但是當我嘗試執行 map 或 reduce 時,出現以下錯誤:那么我們如何將第一個 rdd 數據轉換為第二個 rdd 數據,或者是否有任何方法要解決以下錯誤,請幫助。 謝謝

Py4JJavaError:調用 z:org.apache.spark.api.python.PythonRDD.runJob 時出錯。 :org.apache.spark.SparkException:作業因階段失敗而中止:階段 162.0 中的任務 0 失敗 1 次,最近的失敗:階段 162.0 中丟失任務 0.0(TID 3850,本地主機,執行程序驅動程序):org.apache.spark .api.python.PythonException: Traceback (最近調用最后):

對於第一個rdd,可以將map替換為function:

rdd = sc.parallelize([('a', 1), ('b', 1), ('a', 3)])
rdd.map(lambda o: (o[0], float(o[1]))).reduceByKey(add).collect()

那是因為split只適用於字符串而不適用於元組。

暫無
暫無

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

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