sparkSQL数据倾斜

rdd数据倾斜解决方案

  1. 聚合源数据
  2. 过滤导致倾斜的key
  3. 提高shuffle并行度:spark.sql.shuffle.partitions
  4. 双重groupby
  5. reduce join转换为map join spark.sql.autoBroadcastJoinThreshold
  6. 采样倾斜key并单独进行join
  7. 随机key与扩容表


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