代码之家  ›  专栏  ›  技术社区  ›  ihadanny

在spark join中,表顺序是否像在pig中一样重要?

  •  11
  • ihadanny  · 技术社区  · 10 年前

    与相关 Spark - Joining 2 PairRDD elements

    在pig中执行常规连接时,连接中的最后一个表不会被带入内存,而是通过流传输,因此如果a的每个键的基数较小,而B的基数较大,那么这样做会更好 join A, B join A by B 从性能角度来看(避免溢出和OOM)

    火花中有类似的概念吗?我没有看到任何这样的建议,我想知道怎么可能?在我看来,实现与pig中的几乎相同: https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/CoGroupedRDD.scala

    还是我错过了什么?

    1 回复  |  直到 8 年前
        1
  •  6
  •   aaronman    10 年前

    这没有什么区别,在spark中,RDD只有在缓存时才会被带入内存。因此,为了实现相同的效果,您可以缓存较小的RDD。另一件你可以在火花中做的事,我不确定猪会做,就是如果所有RDD都有相同的分区,那么就不需要进行洗牌。