我有一个带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中都存在同样的问题。