-5
鑑於以下RDD:阿帕奇火花 - 斯卡拉 - ReduceByKey - 連鍵重複高達兩倍僅
val vectors = RDD [String, Int] = ((k1,v1),(k1,v2),(k2,v3),...)
其中鍵出現兩次或者(K1)或一次(K2)
,從未不止於此。我想:
val uniqVectors = RDD[String, Int] = ((k1, v1*v2), (k2, v3), ...)
一種方法是使用reduceByKey:
val uniqVectors = vectors.reduceByKey((a,b) => a*b)
然而,它與7B元素陣列太慢。 在這個特定情況下有沒有更快的方法?
呃...它不慢...因爲7B元素而需要花費時間。 –
是的!我明白。但考慮我正在使用2kgb ram和50個內核的機器。此外,我正在尋找更快的解決方案,在這種情況下,凱斯不會重複一次以上。 – kambiz
那麼......執行速度不僅取決於內存,還取決於CPU內核的數量。在Spark集羣上進行調度時增加執行程序的數量,並在創建rdd時增加分區數量。 –