Spark SQL Join类型

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值, 结合在一起。

                                       

扫描二维码关注公众号,回复: 5899667 查看本文章

 2.cross  通过左dataset的每一行和右 dataset的每一行生成一个笛卡尔积运算结果 。

                                      

 3.outer,full,fullouter  左、右dataset所有的行形成 一个dataset,若新的dataset的行只包含左或右的dataset的数据时,则补充数据为null。

                                                

4.leftanti  结果dataset只包含存在于左dataset,而不包含于右dataset的数据。

5.left,leftouter  结果dataset包含左dataset的所有的加上右dataset的common rows,像inner join一样,不包含于右dataset的填充为null。

                                           

6. leftsemi  结果dataset包含左、右数据集common rows,但仅仅包含左dataset的数据。

7.right,rightouter  结果dataset包含右dataset的所有行加上右、左common rows,右dataset的行不存在于左dataset是,填充数据为null。

                                             

猜你喜欢

转载自blog.csdn.net/sperospera/article/details/89222841
今日推荐