统计《红楼梦》和《西游记》里面高频字:

scala> spark.read.textFile("/Users/bluejoe/testdata/xiyou.txt").map(_.replaceAll("[\\x00-\\xff]|,|。|:|.|“|”|?|!| ", "")).flatMap(_.split("")).groupBy("value").count.sort($"count".desc).take(40)
res19: Array[org.apache.spark.sql.Row] = Array([道,10023], [不,7984], [了,7144], [一,7079], [那,6934], [我,6575], [是,5907], [行,5474], [来,5431], [他,5297], [个,5206], [你,5086], [的,4971], [者,4887], [有,3909], [大,3603], [得,3514], [这,3481], [去,3377], [上,3260], [老,3204], [三,3072], [见,3031], [在,2987], [人,2985], [子,2763], [僧,2751], [也,2706], [里,2629], [下,2613], [师,2438], [着,2273], [只,2234], [又,2227], [妖,2210], [八,2196], [之,2184], [说,2126], [王,2124], [天,2086])scala> spark.read.textFile("/Users/bluejoe/testdata/honglou.txt").map(_.replaceAll("[\\x00-\\xff]|,|。|:|.|“|”|?|!| ", "")).flatMap(_.split("")).groupBy("value").count.sort($"count".desc).take(40)
res20: Array[org.apache.spark.sql.Row] = Array([了,21157], [的,15603], [不,14957], [一,12106], [来,11404], [道,11029], [人,10493], [是,10099], [说,9801], [我,9137], [这,7797], [他,7712], [你,7118], [着,6172], [去,6165], [儿,6071], [也,6064], [玉,6023], [有,5958], [宝,5789], [个,5647], [子,5566], [又,5205], [贾,5193], [里,5134], [那,4891], [们,4886], [见,4788], [只,4662], [太,4287], [便,4062], [好,4026], [在,3990], [笑,3945], [家,3910], [上,3886], [么,3676], [得,3577], [大,3557], [姐,3435])

接着再来统计双字词的频次:

scala> spark.read.textFile("/Users/bluejoe/testdata/xiyou.txt").map(_.replaceAll("[\\x00-\\xff]|,|。|:|.|“|”|?|!| ", "")).flatMap(s => s.zip(s.drop(1)).map(t => "" + t._1 + t._2)).groupBy("value").count.sort($"count".desc).take(40)
res18: Array[org.apache.spark.sql.Row] = Array([行者,4189], [八戒,1747], [者道,1641], [师父,1546], [三藏,1287], [一个,1149], [大圣,1047], [唐僧,972], [道你,838], [沙僧,780], [和尚,732], [笑道,718], [怎么,707], [那里,707], [我们,685], [不知,665], [道我,637], [菩萨,623], [长老,612], [妖精,604], [老孙,563], [戒道,559], [两个,533], [了一,484], [什么,478], [——,468], [不是,467], [国王,455], [见那,451], [藏道,435], [那怪,434], [道师,434], [道这,434], [呆子,417], [徒弟,408], [只见,403], [也不,382], [僧道,377], [那妖,356], [小妖,348])scala> val xx = spark.read.textFile("/Users/bluejoe/testdata/honglou.txt").map(_.replaceAll("[\\x00-\\xff]|,|。|:|.|“|”|?|!| ", "")).flatMap(s => s.zip(s.drop(1)).map(t => "" + t._1 + t._2)).groupBy("value").count.sort($"count".desc).take(40)
xx: Array[org.apache.spark.sql.Row] = Array([宝玉,3963], [笑道,2454], [太太,1986], [了一,1900], [什么,1833], [凤姐,1731], [贾母,1684], [一个,1532], [夫人,1457], [也不,1446], [黛玉,1372], [道你,1287], [我们,1220], [那里,1174], [袭人,1151], [姑娘,1125], [道我,1120], [去了,1095], [宝钗,1081], [不知,1076], [王夫,1076], [起来,1054], [听了,1050], [出来,1044], [来了,1042], [怎么,1029], [你们,1014], [如今,1004], [丫头,993], [知道,982], [说道,975], [老太,972], [贾政,946], [这里,935], [道这,903], [他们,895], [说着,894], [不是,891], [众人,875], [奶奶,852])

比较一下每20章的词频与这top40词频的差别:

Seq(20,40,60,80,100,120).map(num=>20-spark.read.textFile("/Users/bluejoe/testdata/honglou"+num+".txt").map(_.replaceAll("[\\x00-\\xff]|,|。|:|.|“|”|?|!| ", "")).flatMap(s => s.zip(s.drop(1)).map(t => "" + t._1 + t._2)).groupBy("value").count.sort($"count".desc).take(40).map(_(0)).toSet.intersect(xx.map(_(0)).toSet).size)
res17: Seq[Int] = List(-10, -12, -16, -11, -11, -14)  

spark的几个示例相关推荐

  1. Spark广播变量使用示例

    Spark广播变量使用示例 实现原理 广播变量用来高效分发较大的对象.向所有工作节点发送一个较大的只读值,以供一个或多个 Spark 操作使用.比如,如果你的应用需要向所有节点发送一个较大的只读查询表 ...

  2. spark在服务器运行示例_创建示例HTTPS服务器以获取乐趣和收益

    spark在服务器运行示例 通常,在开发或/和针对真实场景进行测试期间,我们(开发人员)面临着运行成熟的HTTPS服务器的需求,可能同时进行一些模拟. 在JVM平台上,除非您知道适合此工作的正确工具, ...

  3. 用spark自带的示例SparkPi测试scala和spark集群

    在按照王家林的文档安装完scala,spark集群和idea-IC开发工具后,用spark自带的示例SparkPi测试scala和spark集群 1.按照王家林文档中的方法把spark自带的Spark ...

  4. spark sql 官网示例

    目录 1.Dataset/Dataframe基本操作 2.RDD转Dataset/Dataframe 3.不同数据集 对于spark,无论core还是streaming,亦或sql,structed ...

  5. 用java编写spark程序,简单示例及运行

     最近因为工作需要,研究了下spark,因为scala还不熟,所以先学习了java的spark程序写法,下面是我的简单测试程序的代码,大部分函数的用法已在注释里面注明. 我的环境:hadoop 2 ...

  6. Spark编程基础(Python版)

    一.掌握spark的安装与环境配置 二.掌握spark的安装与环境配置 三.掌握Ubuntu下的Python的版本管理与第三方的安装 四.掌握windows下Pycharm与Ubuntu的同步连接 五 ...

  7. Spark详解(二):Spark完全分布式环境搭建

    1. 前言 本文搭建了一个由三节点(master.slave1.slave2)构成的Spark完全分布式集群,并通过Spark分布式计算的一个示例测试集群的正确性.本文将搭建一个支持Yarn的完全分布 ...

  8. spark 集群单词统计_最近Kafka这么火,聊一聊Kafka:Kafka与Spark的集成

    Spark 编程模型 在Spark 中, 我们通过对分布式数据集的操作来表达计算意图 ,这些计算会自动在集群上 井行执行 这样的数据集被称为弹性分布式数据集 Resilient Distributed ...

  9. 学习笔记Spark(七)—— Spark SQL应用(2)—— Spark DataFrame基础操作

    二.Spark DataFrame基础操作 2.1.DataFrame DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表. 数据集的每一列都带有名称和类 ...

最新文章

  1. 一篇文章搞定大规模容器平台生产落地十大实践
  2. 生成大小写字母加数字混合ID与自定义进制转换
  3. 易语言录入数据到access里重复提示_一招搞定:excel数据共享协同
  4. 重构-改善既有代码的设计:重构原则(二)
  5. Java线程的概念:什么是线程?
  6. c语言用hash方式数组去重,js数组去重的hash方法
  7. LeetCode:每日一题(2020.4.14)
  8. 专治数仓疑难杂症!美团点评 Flink 实时数仓应用经验分享
  9. Perl5中19个最重要的文件系统工具
  10. linux-vim快捷键
  11. 布客·ApacheCN 编程/后端/大数据/人工智能学习资源 2020.6
  12. http 请求 返回状态码 405 的问题
  13. 每日一记:查看Oracle补丁更新情况
  14. 光模块有什么用?什么是SFP光模块?
  15. android 项目编译报错 符号: 类 shape 位置: 程序包 android.widget
  16. 三菱或尝试抛弃后视镜,使用摄像头和AI技术来导航
  17. Live800:教育行业新拐点,在线客服系统如何提供价值?
  18. 由一次线上故障来理解下 TCP 三握、四挥 Java 堆栈分析到源码的探秘
  19. 通过两个实例来理解 devtool: 'source-map' 是什么意思
  20. Android之手机电池电量应用

热门文章

  1. 素人做知识付费,还有没有机会
  2. 梦几月,醒几年,今夕是何年。又一年,任时光流逝,回首已是2022年
  3. 计算机是如何识别内核态和用户态,用户态和内核态区分(二十七)
  4. Elasticsearch-Sql+Mybatis+SpringBoot集成
  5. 计算机硬件系统设计—码表数码管显示驱动设计
  6. 手把手教你手写Spring框架
  7. 美通企业日报 | 亚马逊AWS三项举措推进量子计算技术;海航渝富重组西部航空...
  8. win10 +anaconda+pytorch_gpu
  9. 16篇论文入选AAAI 2021,京东数科AI都在关注什么?(附论文下载)
  10. Android 屏幕适配之dimens适配