Spark IMF传奇行动第20课:top N总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark IMF传奇行动第20课:top N总结相关的知识,希望对你有一定的参考价值。
版权声明:本文为博主原创文章,未经博主允许不得转载。作者:HaiziS
今晚听了王家林老师的Spark IMF传奇行动第20课:top N,作业是:scala写topGroup,且对组名key排序
代码如下:
def main(args: Array[String]){ val conf = new SparkConf() //创建SparkConf对象 val sc = new SparkContext(conf) //通过传入SparkConf实例来定制Spark运行具体参数和配置信息来创建SparkContext对象 val lines = sc.textFile("data/TopNGroup") //读取一个本地文件 val pairs = lines.map(line => (line.split(" ")(0),line.split(" ")(1))) //生成key-v键值对一方便sortByKey排序 val groupPairs = pairs.groupByKey() val sortedData = groupPairs.map(groupedData => { val groupedKey = groupedData._1; //获取分组的组名 val groupValue = groupedData._2 //获取每组的内容集合 import scala.collection.mutable.ListBuffer val listBuffer = new ListBuffer[Int] for(i <-groupValue){ listBuffer += i.toInt } val top5 = listBuffer.sorted(Ordering.Int.reverse).take(5) (groupedKey,top5) }).sortByKey(true) sortedData.foreach(println) sc.stop()
排序结果为:
(Hadoop,ListBuffer(99, 98, 97, 96, 69))
(Spark,ListBuffer(195, 100, 99, 98, 91))
后续课程可以参照新浪微博 王家林_DT大数据梦工厂:http://weibo.com/ilovepains
王家林 中国Spark第一人,微信公共号DT_Spark
转发请写明出处。
以上是关于Spark IMF传奇行动第20课:top N总结的主要内容,如果未能解决你的问题,请参考以下文章
Spark IMF传奇行动第17课Transformations实战总结
Spark IMF传奇行动第18课:RDD持久化广播累加器总结
Spark IMF传奇行动第21课:从Spark架构中透视Job
Spark IMF传奇行动第22课:RDD的依赖关系彻底解密