词频汇总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中的元素个数了
012019-08-08
相似问题