ab 11 ab 23 ab 13 ab 44 bb 32 bb 88
// 读取文件 var lines = sc.textFile("/test/t2.txt") // 对键值进行分组 var ss = lines.map(_.split(" ")).map(f=>(f(0),f(1))).groupBy(f=>f._1) // 转换成(xx,List(1,23)) 格式 需要转换成整型 var st = ss.map(f=>{var x = f._1;var y=f._2;(x,y.map(_._2.toInt))}) // 得到每个键值前三的数组 格式 (aa,List(122,90,80)) Iterator没有sorted方法所以需要toArray var result = st.map(f=>{var y = f._2;(f._1,y.toArray.sorted.reverse.take(3))})
groupBy的操作必须对元组进行操作
倒序需要用sorted.reverse结合使用