[Sparkアプリケーション]--パケット取得topNを実現
1207 ワード
一、テキストフォーマット
二、直接コードを献上する
class1 90
class2 56
class1 87
class1 76
class2 88
class1 95
class1 74
class2 87
class2 67
class2 77
二、直接コードを献上する
package com.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
/**
* scala groupTopN
*/
object GroupTopN {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("groupByTopN").setMaster("local[1]")
// context
val sc = new SparkContext(conf)
// RDD
val scores = sc.textFile("score.txt", 1)
// kv ,
val scoresMap = scores.map(x => {
val al = x.split(" ")
(al(0), al(1).toInt)
})
//
val paris=scoresMap.groupByKey()
//sort
val result=paris.map(x=>(x._1,x._2.toList.sorted(Ordering.Int.reverse)))
//
result.foreach(x =>{
println("01 "+x._1)
//
println("02 "+x._2.slice(x._2.length-4, x._2.length))
})
// :
// println(res)
// def res():Any=result.foreach(x=>{
// (x._1,x._2.toList.sorted)
//// var lists2=List(2)//
//// for(score