rdd数据倾斜解决方案
- 聚合源数据
- 过滤导致倾斜的key
- 提高shuffle并行度:spark.sql.shuffle.partitions
- 双重groupby
- reduce join转换为map join spark.sql.autoBroadcastJoinThreshold
- 采样倾斜key并单独进行join
- 随机key与扩容表
- 聚合源数据:Spark core 和Spark SQL没有区别
- 过滤导致倾斜的key: SQL用where过滤
- 提高shuffle并行度 : groupByKey(1000),spark.sql.shuffle.partitions
- 双重groupby: 改写SQL,两次groupby
- reduce join转换为map join: spark.sql.autoBroadcastJoinThreshold
- 采样倾斜key并单独进行join: 强Spark Core的一种方式,sample、filter等算子
- 随机key与扩容表