我在多个论坛上读过这样的文章:当你的底层表被分类和排序时,Shu显着减少了排序、合并、连接。然而,我的问题如下
排序桶只会保证桶中的数据大约是同一组键,并且数据是排序的。假设我们有两个数据帧( d1和d2 ),两者都是排序和存储的。
的d2表的存储在同一台机器上。
如果保证存储在同一台机器上,那么在执行排序-合并连接时,将不会出现跨节点的Exchange。如果他们能坐在不同的机器上。然后,在进行连接时应该进行数据交换。
请帮助理解这个概念。提前谢谢。
发布于 2020-08-15 16:11:03
你的理解是正确的。SortMergeJoin需要数据的RangePartitioning。
如果您的数据文件df1和df2已经由键k上的RangePartitioner (也在k中使用)进行分区,那么就不会有额外的交换,否则就会有。
https://stackoverflow.com/questions/63425408
复制相似问题