如何在大型RDD上最有效地执行组内的笛卡尔连接?

时间:2016-01-04 03:23:35

标签: memory apache-spark rdd

我有两个RDD(一个有1100万条记录,另一条有5000条记录),格式为(K,V)......(Kn,Vn)。有一个与键相关的值,我需要为每个键做一个笛卡尔积。我已尝试使用连接和交叉连接与过滤器或条件,但它们需要2.5小时。我有一个8节点,4核和32 GB RAM每个节点集群,所以期望更好的性能!

1 个答案:

答案 0 :(得分:-1)

如果您使用的是Java,那么在JavaPairRDD类中有一个名为cartesian的方法。

rdd1.cartesian(rdd2);

我希望scala中也可以使用相同的方法。

此外,您可以尝试播放第二个rdd并尝试加入。