原理:
问题点
1、参数设置:
spark.sql.adaptive.join.enabled
|
AE 相关,开启后能够根据数据量自动判断能否将 sortMergeJoin 转换成 broadcast join |
true |
spark.sql.broadcastTimeout |
broadcast joins 时,广播数据最长等待时间,网络不稳定时,容易出现超时造成任务失败,可适当增大此参数 |
300(单位:s) |
spark.sql.autoBroadcastJoinThreshold |
表能够使用 broadcast join 的最大阈值
|
20971520(20MB) |
2、当广播变量的表为1G,但是子查询之后为1M,这样还能广播出去吗?(sortMergeJoin 转换成 broadcast join)
B表为1G,但是筛选之后为1M。
答案:不能。