词频汇总wordcount问题,取Top10,如何优化?

来源:3-6 Spark简单使用

由果子

2019-08-08

今天面试被问到这个问题,请教一下PK老师都有哪些优化方法,只要求取Top10?

写回答

1回答

Michael_PK

2019-08-08

这个问题很好! 可以参考这个思路:默认情况下,你取topn的话肯定是需要全局排序,也就是说只能有一个reduce,所以这么做肯定很慢,所有数据都要过一遍处理。其实最简单的就是在每个map处理的时候放一个TreeSet进去,这个是默认就带排序的,然后控制住,TreeSet中只存放你要个N个数,只要超过这个阈值,就把先进去的数删了,这样这个处理过程中其实,经过shuffle的数据量就是你每个map中的TreeSet中的元素个数了

0
1
Michael_PK
我这是以shuffle过程为例来说的,不管是mr还是spark都可以采用这种思路来实现
2019-08-08
共1条回复

以慕课网日志分析为例 进入大数据Spark SQL的世界

快速转型大数据:Hadoop,Hive,SparkSQL步步为赢

1644 学习 · 1129 问题

查看课程