5RDD操作综合实例(附上第四次作业 补交)
4RDD
一、 RDD创建
1.从本地文件系统中加载数据创建RDD
2.从HDFS加载数据创建
3.通过并行集合(列表)创建RDD
输入列表,字符串,numpy生成数组
二、 RDD操作
转换操作
1. map(func)
2. filter(func)
行动操作
1.foreach(print)
2.collect()
3.flatMap(func)
4.reduceByKey()
5. groupByKey()
6.sortByKey()
7.sortBy()
行动操作
1.foreach(print)
foreach(lambda a:print(a.upper())
2.collect()
3.count()
4.take(n)
5.reduce()
reduce——将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。
redeceByKey——对元素为KV对的RDD中Key相同的元素的Value进行binary_function的reduce操作,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。
5RDD操作综合实例
一、词频统计
A. 分步骤实现
- 准备文件
- 下载小说或长篇新闻稿
- 上传到hdfs上
- 读文件创建RDD
- 下载小说或长篇新闻稿
- 分词
- 排除大小写lower(),map()
标点符号re.split(pattern,str),flatMap(),
停用词,可网盘下载stopwords.txt,filter(),
长度小于2的词filter() - 统计词频
- 按词频排序
- 输出到文件
- 查看结果
B. 一句话实现:文件入文件出
|
C. 和作业2的“二、Python编程练习:英文文本的词频统计 ”进行比较,理解Spark编程的特点。
二、求Top值
网盘下载payment.txt文件,通过RDD操作实现选出最大支付额的用户。
- 丢弃不合规范的行:
- 空行
- 少数据项
- 缺失数据
- 支付金额转换为数值型,按支付金额排序
- 取出Top3