Spark SQL | 数据倾斜问题 (一)

Spark SQL | 数据倾斜问题


问题: 数据倾斜,由于数据分区不均匀,某一task或一部分task承担数据量太大,导致整体任务卡死,或运行太长时间没有结果,一半在大表join中出现,具体可能有一下,group by维度过小 如几十亿数据分组维度只有几个值;空值过多某列数据不好,null或者空值较多,空值都是由一个task来处理且处理速度相当慢,可能卡死任务;
可能解决:
  • 大表join小表 小表 放左边
  • 空值问题,使用nvl() 或者case(when 条件1 then 值1 when 条件2 then 值2 else 值3 end)等方法,将空值替换后再进行统计计算或者join
  • group by 维度较小 现在未遇到因维度较小卡死任务,只是比较耗费时间,上面两个原因都出现卡死任务

总结,要将数据处理规整,再进行计算,出现任务卡死几率较小,暂时就这么多体会了,后续有了再添加。

posted @ 2022-02-27 22:08  —清风碎心—  阅读(307)  评论(0编辑  收藏  举报