[b]t2.txt[/b]
[color=red][b]groupBy的操作必须对元组进行操作[/b][/color]
[size=medium][color=blue][b]倒序需要用sorted.reverse结合使用[/b][/color][/size]
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))})
[color=red][b]groupBy的操作必须对元组进行操作[/b][/color]
[size=medium][color=blue][b]倒序需要用sorted.reverse结合使用[/b][/color][/size]