Spark词频前十的统计练习
2024-09-02 09:19:27
注:图片如果损坏,点击文章链接: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)
最新文章
- C#中JSON序列化和反序列化
- Android常用客户端测试工具
- 启动Automatic Updates出现0x80004015错误的解决办法
- 通用窗口类 Inventory Pro 2.1.2 Demo1(中)
- angularJS directive详解
- A note to ";On global motions of a compressible barotropic and selfgravitating gas with density-dependent viscosities";
- Java学习-集合(转)
- Unity中使用RequireComponent,没有添加上组件
- 常用的Eclipse快捷键
- [Android] 点击事件的四种写法
- android 监听返回键
- Composer的入门与使用
- CVPR论文《100+ Times Faster Weighted Median Filter (WMF)》的实现和解析(附源代码)。
- 15. combobox、combotree获取显示值和value值方式
- Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换(转载)
- postman添加权限验证
- symfony 命令
- [LeetCode&;Python] Problem 917. Reverse Only Letters
- ApplicationEvent事件机制源码分析
- Composer的下载安装
热门文章
- YC-Framework版本更新:V1.0.2
- C++STL标准库学习笔记(二)二分查找
- 车载以太网第二弹|测试之实锤-1000BASE-T1物理层PMA测试实践
- 去除爬虫采集到的\xa0、\u3000等字符
- 多个工作簿拆分(Excel代码集团)
- Vlookup大叔早已油腻(Excel函数集团)
- 万字长文入门 Redis 命令、事务、锁、订阅、性能测试
- Git差异并列显示
- shiro验证时,当authenticationStrategy为AllSuccessfulStrategy时
- RPA账户和密码管理方案