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、使我们在有限的资源情况下,利用尽量少的资源来达到更高效的效果。


阅读更多

没有更多推荐了,返回首页