我有一個帶Integer鍵和Integer []值的PairRDD rdd1
。spark - 如何在另一個RDD的轉換內查找(Java)PairRDD的鍵和值
我也有另一個PairRDD rdd2
與Integer鍵和Double值。
鍵中的每個整數AND值rdd1
也作爲鍵存在於rdd2
中。
我想爲rdd1
每對(x, [y1,y2,...,yn])
得到x
的雙重價值的每個整數y1
,y2
,...,yn
所有的雙重價值。
我試圖收集rdd2
作爲Map<Integer,Double>
(map2
),但它不適合在內存中,我得到OOM錯誤。我也嘗試加入rdds,但我無法弄清楚如何加入密鑰和值。 的lookup()
方法使用rdd1
是不允許的。
的我想要的僞代碼如下:
map each (int x, int[] y) in rdd1 to:
(x, map2.get(x) + sum(map2.get(yi)))
每個yi
在y
。
我使用Java,但我想在Java和Scala中都存在同樣的問題。