码迷,mamicode.com
首页 > 其他好文 > 详细

Spark IMF传奇行动第20课:top N总结

时间:2016-01-26 01:41:30      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:

版权声明:本文为博主原创文章,未经博主允许不得转载。作者: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总结

标签:

原文地址:http://www.cnblogs.com/haitianS/p/5159117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!