spark海量数据去重策略

1.目标:尽可能在有限资源的情况下,利用尽量少的资源来达到更高效的效果。今天就给大家分享一个在DDT首页概览实时性能优化算法 – 海量数据高效去重算法。

2.常规方法:采用spark sql方式去重

3.创新方法:采用spark的分区排序去重算子去重算法。性能大幅度提升,从原来5min左右下降到30s以内(数据量10亿左右)采用spark sql方式和spark 算子分区排序去重算法对比:

4.实验对比:

4.1 使用sql 去重的方法和耗时:


资源耗时:6min


4.2 使用spark的分区排序去重算子去重的方法和耗时:


5.使用spark的分区排序去重算子去重方法的优点

a、在于sortWithinPartitions方法返回的是按Partition排好序的DataFrame对象。我们只需在Partition排好序的
DataFrame对象后采用dropDuplicates删除相同的列,返回一个DataFrame,得到最新时间的数据。

b、这种去重方式大幅度提升了海量数据去重性能,减少了过程中shuffle操作。

6.带来的影响

a、提升了DDT实时概览计算的整体性能,解决海量数据中实时取数更新问题。
b、提高了用户体验度,为客户更加实时掌握用户产品的动态状况,提升产品价值。
C、使我们在有限的资源情况下,利用尽量少的资源来达到更高效的效果。


  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值