本文针对 版本spark 2.2
问题描述
spark sql 执行sql语句:
big_table a left join small_table b on a.id = b.id
small_table 只有100多行数据。
big_table 大约5亿行数据。
没有触发 spark sql 的 broadcast join,导致sql执行缓慢。
问题排查
broadcast join 自动触发条件。
- 小表的size是否小于spark.sql.autoBroadcastJoinThreshold设定的值。
- 表大小的估算通过hive元数据库的统计值,即要保证 ANALYZE TABLE COMPUTE STATISTICS no