一、SPARK SQL的执行流程

  

spring sparksql 集成 spark sql full join_spark

 

 二、spark支持的join包括:inner join,left outer join,right outer join,full outer join,left semi join,left anti join

 spark的join是将两张表抽象为遍历表和查找

spring sparksql 集成 spark sql full join_spring sparksql 集成_02

 

 spark提供三种形式的join:

  1)Broadcast hash join:即将小表数据广播到executor,其实就是利用collect算子将小表数据收集到driver端,在由driver分发到executor

  2)Shuffle Sort join:在shuffle read阶段对记录排序,仅支持等值 Join,并且要求参与 Join的 Keys 可排序

  3)Shuffle Hash join:在shuffle read阶段不对记录排序,反正来自两格表的具有相同key的记录会在同一个分区,只是在分区内不排序,将来自buildIter的记录放到hash表中