注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6815390070254600712/

承接上一个文档《Spark本地环境实现wordCount单词计数

进一步延伸,做一个词频前十的统计练习

逻辑:在reduceByKey的基础上,首先要根据key对应的value值进行排序(降序排序),取前10个的结果就是Top10

val reduceByKeyRDD = sc.textFile("file:///opt/bigdata/spark/README.md").flatMap(_.split(" ")).filter(_.nonEmpty).map((_,1)).reduceByKey(_+_)

reduceByKeyRDD.sortBy(t => t._2,ascending=false)

reduceByKeyRDD.sortBy(t => t._2,ascending=false).take(10)

sortBy函数:第一个匿名函数表示按照元组的第二个元素进行排序,ascending=false表示按照降序排序,如果不指定这个参数,默认是升序的排序

reduceByKeyRDD.sortBy(t => t._2 * -1).take(10)

也实现了降序排列,提取TOP10

下面这个方法也可以

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).map(t => t.swap).take(10)

分解看下:

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).
t.swap :("the",22) --> (22,"the") --> ("the",22)

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).map(t => t.swap).take(10)

下面这个性能会更好:

reduceByKeyRDD.map(t => t.swap).sortByKey(ascending=false).take(10).map(t => t.swap)

用top(10)代替sortByKey(ascending=false).take(10)这一部分

reduceByKeyRDD.map(t => t.swap).top(10).map(t => t.swap)

 

最新文章

  1. C#中JSON序列化和反序列化
  2. Android常用客户端测试工具
  3. 启动Automatic Updates出现0x80004015错误的解决办法
  4. 通用窗口类 Inventory Pro 2.1.2 Demo1(中)
  5. angularJS directive详解
  6. A note to "On global motions of a compressible barotropic and selfgravitating gas with density-dependent viscosities"
  7. Java学习-集合(转)
  8. Unity中使用RequireComponent,没有添加上组件
  9. 常用的Eclipse快捷键
  10. [Android] 点击事件的四种写法
  11. android 监听返回键
  12. Composer的入门与使用
  13. CVPR论文《100+ Times Faster Weighted Median Filter (WMF)》的实现和解析(附源代码)。
  14. 15. combobox、combotree获取显示值和value值方式
  15. Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换(转载)
  16. postman添加权限验证
  17. symfony 命令
  18. [LeetCode&Python] Problem 917. Reverse Only Letters
  19. ApplicationEvent事件机制源码分析
  20. Composer的下载安装

热门文章

  1. YC-Framework版本更新:V1.0.2
  2. C++STL标准库学习笔记(二)二分查找
  3. 车载以太网第二弹|测试之实锤-1000BASE-T1物理层PMA测试实践
  4. 去除爬虫采集到的\xa0、\u3000等字符
  5. 多个工作簿拆分(Excel代码集团)
  6. Vlookup大叔早已油腻(Excel函数集团)
  7. 万字长文入门 Redis 命令、事务、锁、订阅、性能测试
  8. Git差异并列显示
  9. shiro验证时,当authenticationStrategy为AllSuccessfulStrategy时
  10. RPA账户和密码管理方案