分组取topN
1).原生的集合工具Collections.sort(list,new comparator<xxx>)
2).自己定义定长数组
原理:
给出两列数据,将第一列数据当做key,一次按照相同的key值,将value的值进行排序,获取前N个。然后打印输出。
分组取topN(3) :
原数据:
class1 100
class2 85
class3 70
class1 102
class2 65
class1 45
class2 85
class3 70
class1 16
class2 88
class1 95
class2 37
class3 98
class1 99
class2 23
代码实现,分组取top3:
package com.bjsxt.spark.others.topn;
import java.util.Iterator;
import java.util.List;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.api.java.function.VoidFunction;
import akka.util.Collections;
import scala