Apache spark Spark中leftOuterJoin的性能如何?

Apache spark Spark中leftOuterJoin的性能如何?,apache-spark,Apache Spark,如果我执行A.leftOuterJoin(B),其中A是一个有10亿个元素的RDD[(K,V)],B是一个有1000个元素的RDD[(K,W)],Spark是否仍然将A的10亿个元素中的每一个都复制到新的RDD中?上次我查看内部代码时,连接是基于coGroup()的 本质上,两个RDD都将被它们的密钥洗牌(通过网络),然后在本地内存中对每个密钥进行哈希连接。如果由于任何原因,分区已经由您的键进行,则不会发生额外的洗牌 至于“复制元素”,我不这么认为,应该复制本地指针,但除非手动持久化,否则不会存

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

上次我查看内部代码时,连接是基于coGroup()的

本质上,两个RDD都将被它们的密钥洗牌(通过网络),然后在本地内存中对每个密钥进行哈希连接。如果由于任何原因,分区已经由您的键进行,则不会发生额外的洗牌

至于“复制元素”,我不这么认为,应该复制本地指针,但除非手动持久化,否则不会存储前一阶段的中间结果