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

转发请写明出处。

转载于:https://www.cnblogs.com/haitianS/p/5159117.html

Spark IMF传奇行动第20课:top N总结相关推荐

  1. Spark IMF传奇行动第19课:spark排序总结

    今晚听了王家林老师的Spark IMF传奇行动第19课:spark排序,作业是:1.scala 实现二次排序,使用object apply 2:自己阅读RangePartitioner 代码如下: / ...

  2. Spark商业案例与性能调优实战100课》第20课:大数据性能调优的本质和Spark性能调优要点分析

    Spark商业案例与性能调优实战100课>第20课:大数据性能调优的本质和Spark性能调优要点分析 基于本元想办法,大智若愚,大巧若拙!深入彻底的学习spark技术内核!

  3. 第20课 - 初始化列表的使用

    第20课 - 初始化列表的使用 0. 问题 类中是否可以定义 const 成员? 下面的类定义是否合法?如果合法,ci 的值是什么,存储在哪里? 1 class Test 2 { 3 private: ...

  4. 第20课 孔融让梨 《小学生C++趣味编程》

    /* 第20课 孔融让梨-2020.10.29 方法一 试编一程序,输入出三个整数,表示梨的重量,输出最小的数. */ #include<iostream> using namespace ...

  5. 考研日语线上笔记(三):初级日语语法总结20课

    目录 1 助词 1.1 表示场所的助词(で.に) 1.2 表示场所的助词(を.に) 1.3 其他助词 1.4 表示时间关系的助词 2 「は」と「が」 2.1 重要的信息 2.2 希望明确表示时 3 活 ...

  6. 考研日语线上笔记(四):中级日语语法总结20课(1~10)

    目录 1 各种作用的助词 1.1 带有限定意思的助词 1.1.1 だけ 1.1.2 ばかり 1.1.3 さえ 1.1.4 しか 1.2 表示强调.程度之大的副词 1.2.1 も 1.2.2 だけ 1. ...

  7. 第20课 Altium Designer20(AD20)+VESC6.4实战教程:更改Type-C封装 (北冥有鱼)

    第20课 Altium Designer20(AD20)+VESC6.4实战教程:更改Type-C封装 (北冥有鱼)

  8. 第20课 用声音控制小猫动作

    第20课 用声音控制小猫动作 [教材分析] 本课主要的学习任务是用音量值控制小猫的运动,其涉及的知识点有:认识音量值控件,用数值与逻辑运算来表达音量值的范围,以及用多个"如果..." ...

  9. 【哈佛积极心理学笔记】第20课 幸福与幽默

    第20课 幸福与幽默 The vanguard of the positive psychology revolution: Our brain is basically a single proce ...

最新文章

  1. 使用rancher对Docker容器服务升级
  2. “中台不就是微服务吗?有啥区别?”
  3. 2-Authentication Framework Chain of Trust
  4. 【NLP】全面详解 | 深度学习中的注意力机制(一)
  5. *【CodeForces - 799C】Fountains (线段树 或 树状数组,类似二元组问题)
  6. 存储引擎 boltdb 的设计奥秘?
  7. TLD Tracker
  8. 突发!Intel CEO 换帅,VMware CEO 将走马上任
  9. java完全自学手册pdf,高级Java开发必看
  10. java线程状态与操作系统线程状态的关系
  11. uploader.php,Uploader.php
  12. 计算机台式机怎么用无限,台式机如何无线上网 台式机实现无线上网的教程【图文】-太平洋电脑网PConline-太平洋电脑网...
  13. 无人机视觉检测算法研究及数据集汇总
  14. 30天自制操作系统第二天
  15. Python操纵Word神器——python-docx大全(含插入pptx图表)
  16. 辐射:新维加斯 MO 安装 MOD 失效/不起作用的问题记录
  17. Android编程权威指南第3版 源代码
  18. WordPress插件开发教程1
  19. 易语言如何引用模块和模块中的类
  20. VideoSolo Screen Recorder for mac(mac屏幕录制工具)

热门文章

  1. 【MySQL优化】——看懂explain
  2. 共享汽车软件哪个比较好用?只有这3款不需要押金!
  3. 微信 ajax 2次,微信二次分享失败问题解决
  4. [深入浅出Windows 10]模拟实现微信的彩蛋动画
  5. 只改一个值 加快宽带上网速度
  6. 看完做不好百度爱采购你打我!
  7. php move_uploaded_file 权限,php – move_uploaded_file无法打开流:权限被拒绝 – Mac
  8. 那时我还年轻,也想不到以后会怎么样,就是想要呆在机房里,为了做出题目这样纯粹的感动而活下去。
  9. java resultmap_Mybatis中强大的resultMap功能介绍
  10. hexo添加live2d看板动画