0x00 教程内容
0x01 数据准备
1. 数据获取
2. 数据内容
0x02 代码实现
1. 启动spark-shell
2. 测试代码
0x03 校验结果
1. 查看是否有统计结果
0xFF 总结
数据准备
代码实现
校验结果
案例背景:这是某年“高校云计算应用创新大赛”的一道题目。
学习内容:主要进行 RDD 的相关操作,包括转换算子和动作算子。
案例目的:统计莎士比亚诗文集中出现频次最高的100个单词,但是这100个单词中不包括停词表中那些没有实际意义的词。
案例思路:将莎士比亚诗文集文件夹下面的多个文件都读成 RDD,然后过滤掉停词表中的单词,统计频次最高的100个单词,并且保存结果在特定的文件夹即可。思路与Spark的WordCount案例相似,文章参考:IntelliJ IDEA开发Spark案例之WordCount,只是难度稍微加大了一点点而已。
案例关键:
1、读取多个文件生成 RDD
2、过滤掉某个文件中的单词,所以这些词也应该以某种方式存在
3、频次最高的100个单词,所以需要排序
方式一:
链接地址:邵奈一的学习库 的datas文件夹里查找
具体下载链接:点击下载
方式二:
关注公众号/微信获取:邵奈一公众号、邵奈一WeChat
莎士比亚诗文集:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yYiZGZwYDZwIzM0IGOyETYlhDZxMjNyEDN0YmN0ETOm9CXwEzLcZDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL1M3Lc9CX6MHc0RHaiojIsJye.png)
存放的路径:
使用下面命令解压压缩包:
<code>unzip shakespear.zip</code>
提醒:如果报错=> <code>-bash: unzip: command not found</code>
则需要安装一下zip和unzip后再解压:
<code>yum install -y unzip zip</code>
截图:
查看诗文集内容,注意到其实有一些行是空行来的:
停词表:
<code>spark-shell</code>
注意:代码中的<code>文件路径</code>和<code>运行模式</code>需要根据实际情况进行修改。
查看未排序前的结果:
<code>cat /tmp/v4output/*</code>
查看排序后的结果:
<code>cat /tmp/result/*</code>
发现均可查看到统计结果!
本教程较简单,关键有三个点:生成RDD的是多个文件、需要过滤掉一个文件里面的内容、需要对统计结果进行排序。其中会涉及到一些Scala常用方法,如trim、 replace、split等,如果有一定的编程基础,相信一看就能看得懂是什么意思。
此外还涉及到一点点的正则表达式,可以自行查阅资料学习,也可以参考本博客教程:JavaScript正则表达式轻松入门
更多学习资源请关注公众号、加微信、点赞加关注,感谢!
作者简介:邵奈一
全栈工程师、市场洞察者、专栏编辑
| 公众号 | 微信 | 微博 | CSDN | 简书 |
福利:
邵奈一的技术博客导航
邵奈一原创不易,如转载请标明出处,教育是一生的事业。