5.RDD操作综合实例
一、词频统计
A. 分步骤实现
1、准备文件
下载小说或长篇新闻稿
上传到hdfs上
读文件创建RDD
分词
排除大小写lower(),map()
.标点符号re.split(pattern,str),flatMap(),
先导入re然后用re.split分词(\W+会匹配所有非单词字符,(\W+)会返回这些,但我们不需要返回,所以这里用\W+即可)
停用词,可网盘下载stopwords.txt,filter(),
将停用词文件分词储存到变量中
筛选出不在停用表中的词
长度小于2的词filter()
5.统计词频
先把单词映射成键值对
将key相同的values合并起来,做词频的统计
6.按词频排序
用sortBy进行词频的排序(对values值进行降序排序,并且指定区块数量为1,以方便查文件)
7.输出到文件
分别输出到本地文件和分布式文件上
8.查看结果
查看文件前15条结果是否正确即可
B. 一句话实现:文件入文件出
查看文件
二、求Top值
-
网盘下载payment.txt文件,通过RDD操作实现选出最大支付额的用户。
-
下载项目,将项目put到分布式系统上
读取文件,进行分词和去标点操作
将金额映射成KV值相同的键值对,注意把values值映射的时候设置为int值
然后对键值对进行累加统计和排序
输出到文件并查看结果
所以获取最大支付额的用户就是7890的用户了