注:图片如果损坏,点击文章链接: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)

 

Spark词频前十的统计练习的更多相关文章

  1. 使用Python 统计nginx日志前十ip访问量并以柱状图显示

    脚本内容: import matplotlib.pyplot as plt # nginx_file = '10.6.11.91_access.log-2018-12-27' ip = {} #筛选n ...

  2. spark ---词频统计(二)

    利用python来操作spark的词频统计,现将过程分享如下: 1.新建项目:(这里是在已有的项目中创建的,可单独创建wordcount项目) ①新建txt文件: wordcount.txt (文件内 ...

  3. MIS2000 Lab,我的IT人生与职场--从零开始的前十五年 与 我的微创业

    http://www.dotblogs.com.tw/mis2000lab/archive/2014/09/16/ithome_2014_ironman.aspx [IT邦幫忙]鐵人賽 -- MIS2 ...

  4. 现有n 个乱序数,都大于 1000 ,让取排行榜前十,时间复杂度为o(n), top10, 或者 topK,应用场景榜单Top:10,堆实现Top k

    一.topK python实现   def topk(k, lst): top = [0 for i in range(k)] #生成一个长度为K 的有序列表 for item in lst: #循环 ...

  5. Appstore排名前十的程序员应用软件

    程序员又名程序猿,苦逼劳累的代名词,曾经一个朋友这么开玩笑说,如果你是富二代,你当程序员就是脑残,如果你是穷二代,当程序员的话,死的时候一定是趴键盘. 程序员 哦,可怜的程序员.在那山的这边海的那边有 ...

  6. three.js实现球体地球2018年全球GDP前十国家标记

    概况如下: 1.SphereGeometry实现自转的地球: 2.THREE.Math.degToRad,Math.sin,Math.cos实现地图经纬度与三位坐标x,y,z之间的转换: 3.Imag ...

  7. Python爬取酷狗飙升榜前十首(100)首,写入CSV文件

    酷狗飙升榜,写入CSV文件 爬取酷狗音乐飙升榜的前十首歌名.歌手.时间,是一个很好的爬取网页内容的例子,对爬虫不熟悉的读者可以根据这个例子熟悉爬虫是如何爬取网页内容的. 需要用到的库:requests ...

  8. Spark学习笔记1——第一个Spark程序:单词数统计

    Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...

  9. 【转帖】2018全球公有云IaaS榜单出炉:阿里、腾讯、中国电信、金山云列前十

    2018全球公有云IaaS榜单出炉:阿里.腾讯.中国电信.金山云列前十 https://news.cnblogs.com/n/628391/ 中国电信貌似就是用的华为的技术 阿里 腾讯 华为 金山 百 ...

随机推荐

  1. git push大文件失败(write error: Broken pipe)完美解决

    问题 在使用git push推送大文件(超过了100MB)到GitHub远程仓库时提示异常,异常信息如下: fatal: sha1 file '<stdout>' write error: ...

  2. 万字教你如何用 Python 实现线性规划

    摘要:线性规划是一组数学和计算工具,可让您找到该系统的特定解,该解对应于某些其他线性函数的最大值或最小值. 本文分享自华为云社区<实践线性规划:使用 Python 进行优化>,作者: Yu ...

  3. java中栈,堆,方法区

    最近在看面试题复习javaee,所以在这里对栈,堆,方法区做一下整理 参考了https://www.cnblogs.com/hqji/p/6582365.html 1.栈 每个线程包含一个栈区,栈中只 ...

  4. .net 6 (.net core) 发布到linux docker中

    第一步:VMware 安装 虚拟机Linux系统,本文以 CentOS 为例 .

  5. HTML5 head标签meta标签、title的功能

    <!DOCTYPE html> <!-- 解释器--> <html lang="en"> <head> <!--meta标签中 ...

  6. ajax 有终止请求 abort 那 axios 有没有,怎么实现

    见代码 class View extends Component { constructor(props){ super(props); this.state = { cancel:null, can ...

  7. SQL Server日志恢复还原数据

    通过日志还原,首先要注意的是: 1,在数据库更新和删除之前有一个完整的备份. 2,在更新和删除之后,做一个日志备份. 3,该日志只能用于还原数据库备份和日志备份时间之间的数据. 下面看整个数据库备份和 ...

  8. AcWing 466. 回文日期

    题目: 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期. 显然:一个日 ...

  9. windows生成ssh上传git代码

    打开 执行 ssh-keygen -t rsa -C "email@email.com" #换成你的git登录账号 中间肯会有提示确认的 然后在 C:\Users(用户)\你电脑用 ...

  10. js-fn函数返回一个引用变量的细节

    1.直接返回一个字面量对象 function fun1() { return { age:10, name:'adain' } a = fun1(); b = fun1(); b.age = 18 ; ...