SparkSQL的3种Join实现
5万人关注的大数据成神之路,不来了解一下吗?5万人关注的大数据成神之路,真的不来了解一下吗?5万人关注的大数据成神之路,确定真的不来了解一下吗? 欢迎您关注《大数据成神之路》 引言 Join是SQL语句中的常用操作,良好的表结构能够将数据分散在不同的表中,使其符合某种范式,减少表冗余、更新容错等。而建立表和表之间关系的最佳方式就是Join操作。 对于Spark来说有3中Join的实现,每种Join对应着不同的应用场景: Broadcast Hash Join :适合一张较小的表和一张大表进行join Shuffle Hash Join : 适合一张小表和一张大表进行join,或者是两张小表之间的join Sort Merge Join :适合两张较大的表之间进行join 前两者都基于的是Hash Join,只不过在hash join之前需要先shuffle还是先broadcast。下面将详细的解释一下这三种不同的join的具体原理。 Hash Join 先来看看这样一条SQL语句: select * from order,item where item.id = order.i_id ...