一次数据查询,简单的表关联,在某个stage 长时间running
查看Spark ui ,发现 两阶段 inputsize 相差巨大,有明显数据倾斜
解决:
其中一个表为维度表,数据量较小考虑 提供map join 判断阀值
set spark.sql.autoBroadcastJoinThreshold = 838861000;
提高广播表的大小,适当牺牲空间换查询性能,
set spark.sql.shuffle.partitions = 1000;
提高shuffle 阶段task数量。
查询从 10+min ————》 1 min 20s