联合分区加入 spark SQL

Co-partitioned joins in spark SQL

是否有提供联合分区连接的 Spark SQL 数据源的任何实现 - 很可能是通过 CoGroupRDD?我没有在现有的 Spark 代码库中看到任何用途。

动机是在两个表具有相同数量和相同范围的分区键的情况下大大减少洗牌流量:在这种情况下会有 Mx1而不是 MxN 随机扇出。

目前在 Spark SQL 中唯一大规模的连接实现似乎是 ShuffledHashJoin - 是否需要 MxN shuffle 扇出,因此很昂贵。

我认为您正在寻找应该在 Spark 2.0 中出现的 Bucket Join optimization

在 1.6 中,您可以完成类似的事情,但只能通过缓存数据。 SPARK-4849