是否存在提供共分区连接的Spark SQL DataSource的任何实现 - 最有可能通过CoGroupRDD?我没有在现有的Spark代码库中看到任何用途。
在两个表具有相同数量和相同范围的分区键的情况下,动机将大大减少随机播放流量:在这种情况下,将存在 Mx1 而不是 MxN 随机播出。
目前在Spark SQL中唯一的大规模连接实现似乎是 ShuffledHashJoin - 需要MxN shuffle扇出,因此很贵。
答案 0 :(得分:5)
我认为您正在寻找Spark 2.0中应该出现的Bucket Join optimization。
在1.6中你可以完成类似的事情,但只能通过缓存数据。 SPARK-4849