Spark SQL join工作是通过使用executors 操作DataFrame的多个分区,具体的过程和性能依赖join type和datasets的特征。join的过程中,包含了shuffle join 和broadcast join;
在两个大的datasets join的过程中,进行了 shuffle join,使左右的dataset的分区数据到达executors。如:
当一个大的dataset和一个小的dataset进行join操作时,小的数据集通过广播的方式,广播到executors,过程如:
join 的类型分为:
1.inner 通过左dataset的每一行和右dataset的行进行比较,匹配的行 并且都没有null值, 结合在一起。