大表join小表,并且是left join ,出现大量的null key 导致并行度减小,并且task数据有些较大。
解决办法:
1、使用join,把null的数据筛选出来,处理完成之后和不为null 的数据union,结果从14分钟提升到4分钟
2、spark dataframe 广播小表,使用org.apache.spark.sql.functions.broadcast()广播小表,再和小表join。结果从14分钟提升到2分钟30秒。
感觉篇文章不错:
大表join小表,并且是left join ,出现大量的null key 导致并行度减小,并且task数据有些较大。
解决办法:
1、使用join,把null的数据筛选出来,处理完成之后和不为null 的数据union,结果从14分钟提升到4分钟
2、spark dataframe 广播小表,使用org.apache.spark.sql.functions.broadcast()广播小表,再和小表join。结果从14分钟提升到2分钟30秒。
感觉篇文章不错:
本文标题:spark dataframe join造成数据倾斜
本文链接:https://www.haomeiwen.com/subject/titxwctx.html
网友评论