Spark 解决倾斜

268 阅读1分钟

1 提前过滤异常值

2 增大shuffle并行度

3 两阶段聚合(局部聚合+全局聚合)【仅仅适用于聚合类的shuffle操作,适用范围相对较窄】

4 异常值 join ...... on -rand()*100000 随机值

5 broadcast join

6 spark.sql.adaptive.skewedJoin.enabled = true ,如果上游stage输出的某个key的记录大于阈值,则会多启动几个reduce处理该key的记录。

end