什么是随机key双重聚合
随机Key双重聚合是指Spark分布式计算对RDD调用reduceByKey等聚合类Shuffle算子进行计算,使用对Key值随机数前缀的处理技巧,对Key值进行二次聚合。
- 第一次聚合(局部聚合):对每个Key值加上一个随机数,执行第一次reduceByKey聚合操作。
- 第二次聚合(双重聚合):去掉Key值的前缀随机数,执行第二次reduceByKey聚合,最终得到全局聚合的结果。
适用场景
对RDD执行reduceByKey等聚合类shuffle算子或者在Spark SQL中使用group by语句进行分组聚合。
案例:电商广告点击系统中,如果根据用户点击的省份进行汇聚,原来的Key值是省份,如果某些省份的Value值特别多,发生了数据倾斜,可以将每个Key拆分成多个Key,加上随机数前缀将Key