Spark中leftOuterJoin的表现如何?

时间:2015-03-19 20:18:06

标签: apache-spark

如果我执行A.leftOuterJoin(B),其中A是具有10亿个元素的RDD [(K,V)],B是具有1000个元素的RDD [(K,W)],Spark仍然会复制A到新RDD的10亿个元素中的每一个?

1 个答案:

答案 0 :(得分:2)

上次我查看内部代码时,Join基于coGroup()。

基本上,两个RDD将通过其密钥进行混洗(跨网络),然后在本地内存中为每个密钥进行散列连接。如果由于任何原因分区已经是您的密钥,则不会发生额外的随机播放。

至于#34;复制元素"我不这么认为,应该复制本地指针,但是除非你手动保留它们,否则不存储前一阶段的中间结果。