5.RDD操作综合实例
1、词频统计
A. 分步骤实现
准备文件
下载小说或长篇新闻稿
上传到hdfs上
读文件创建RDD
分词
排除大小写lower(),map()
标点符号re.split(pattern,str),flatMap(),
停用词,可网盘下载stopwords.txt,filter(),
长度小于2的词filter()
统计词频
按词频降频排序
输出到文件
查看结果
B. 一句话实现:文件入文件出
C. 和作业2的“二、Python编程练习:英文文本的词频统计 ”进行比较,理解并用自己话表达Spark编程的特点。
在Spark中,RDD允许用户显式地将工作集缓存在内存中,后续能够重用工作集,这极大地提升了速度。在spark中读取数据后数据是一条字符串/一行字符串可叫做一个rdd对象,spark中词频统计需要先用flatMap进行切分并压平,然后处理切分的字符串后形成新的键值对,再对形成的键值对进行词频的统计,然后再排序输出。
而在python中,则没有压平等这类操作。而spark中有个特点就是在spark中有着区块数的概念,是多个任务同时进行,而python是按顺序进行的,所以spark主要是对分布式的数据进行处理,而python是对单数据进行处理。
二、求Top值
网盘下载payment.txt文件,通过RDD操作实现选出最大支付额的用户。
丢弃不合规范的行:
按支付金额排序
取出Top3