TopN算法,使用spark或者scala实现。
object TopN{
def main(args:Array[String]){
val conf = new SparkConf()
conf.setAppName("Wow,TopNGroup App!")
conf.setMaster("local")
val sc = new SparkContext(conf)
sc.setLogLevel("WARN")
val lines = sc.textFile("D://data//topN.txt", 1) //读取本地文件并设置为一个Partion
val pairs=lines.map { line => (line.split(",")(0),line.split(",")(1).toInt) }
val grouped=pairs.groupByKey
val groupedTop5=grouped.map(grouped=>
{
(grouped._1,grouped._2.toList.sortWith(_<_).take(5))
})
val groupedKeySorted=groupedTop5.sortByKey()
groupedKeySorted.collect().foreach(pair=>{
println(pair._1+":")
pair._2.foreach { println }
})
sc.stop()
}
}