数据倾斜是指在数据处理过程中,某些分区的数据量远远大于其他分区,导致某些任务的执行时间远远长于其他任务,最终导致任务失败或oom。以下是解决数据倾斜的几种方式:
-
增加并行度:可以使用
repartition
或coalesce
方法增加分区数,从而增加并行度。但是要注意,增加分区数并不一定能解决数据倾斜问题,还需结合其他策略。 -
使用随机数解决数据倾斜:如果数据倾斜是因为某些数据的key值太大导致的,可以使用随机数方式将key值分散到多个分区中,从而解决数据倾斜。具体的做法是:将key值与一个0到分区数之间的随机数相加得到新的key值,然后再进行处理。
完整内容请点击下方链接查看:
spark sql 使用row_number 出现oom-问答-阿里云开发者社区-阿里云
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和《 阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。