0
使用Spark,我有一對RDD[(String, (Int, Int)]
。我試圖找到最好的方法來顯示每個鍵的總和(在這種情況下,每個Int
單獨顯示的總和)。我想用reduceByKey
來做到這一點。Spark - 最好的方法使用ReduceByKey來加入兩個值
這可能嗎?
使用Spark,我有一對RDD[(String, (Int, Int)]
。我試圖找到最好的方法來顯示每個鍵的總和(在這種情況下,每個Int
單獨顯示的總和)。我想用reduceByKey
來做到這一點。Spark - 最好的方法使用ReduceByKey來加入兩個值
這可能嗎?
當然。
val rdd = sc.parallelize(Array(("foo", (1, 10)), ("foo", (2, 2)), ("bar", (5, 5))))
val res = rdd.reduceByKey((p1, p2) => (p1._1 + p2._1, p1._2 + p2._2))
res.collect()
注意收集將檢索結果到您的驅動程序,如果RDD非常大,可能不是最好的處理方法。考慮'res.take(10)' – huitseeker
偉大的作品。謝謝! – DJElbow
@huitseeker我知道。它不應該是生產代碼,只是可以粘貼到shell中的代碼片段,並檢查它的工作原理。 :) – krcz