首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >解决方案使用随机key实现双重聚合

解决方案使用随机key实现双重聚合

作者头像
程序狗
修改2021-09-10 11:39:42
修改2021-09-10 11:39:42
4790
举报
文章被收录于专栏:大数据知识大数据知识

解决方案使用随机key实现双重聚合

当使用了类似于groupByKey、reduceByKey这样的算子时,可以考虑使用随机key实现双重聚合,如图3-1所示:

图3-1 随机key实现双重聚合

首先,通过map算子给每个数据的key添加随机数前缀,对key进行打散,将原先一样的key变成不一样的key,然后进行第一次聚合,这样就可以让原本被一个task处理的数据分散到多个task上去做局部聚合;随后,去除掉每个key的前缀,再次进行聚合。

此方法对于由groupByKey、reduceByKey这类算子造成的数据倾斜由比较好的效果,仅仅适用于聚合类的shuffle操作,适用范围相对较窄。如果是join类的shuffle操作,还得用其他的解决方案。

此方法也是前几种方案没有比较好的效果时要尝试的解决方案。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案使用随机key实现双重聚合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档