Shuffle Hash Join
启用 Shuffle Hash Join 必须满足以下几个条件:
- 仅支持等值 Join,不要求参与 Join 的 Keys 可排序;
- spark.sql.join.preferSortMergeJoin 参数必须设置为 false,参数是从 Spark 2.0.0 版本引入的,默认值为 true,也就是默认情况下选择 Sort Merge Join;
- 小表的大小(plan.stats.sizeInBytes)必须小于 spark.sql.autoBroadcastJoinThreshold * spark.sql.shuffle.partitions;而且小表大小(stats.sizeInBytes)的三倍必须小于等于大表的大小(stats.sizeInBytes),也就是 a.stats.sizeInBytes * 3 < = b.stats.sizeInBytes
常见 Join 类型
亦可参考: https://mazhuang.org/2017/09/11/joins-in-sql/
inner join
select * from studentone_