4.RDD操作
一、 RDD创建
1、从本地文件系统中加载数据创建RDD
(1)创建SparkContext:

(2)从本地文件系统中加载数据创建RDD:

(3)对比原文件:

2、从HDFS加载数据创建RDD
(1)启动hdfs:

(2)上传文件:

(3)查看文件:

(4)加载:


(5)停止hdfs:

3、通过并行集合(列表)创建RDD
输入列表、字符串、生成数组

二、 RDD操作
1、转换操作
(1)filter(func):

(2)map(func):

(3)flatMap(func)
- 分词:

- 单词映射成键值对:

(4)reduceByKey()
- 统计词频,累加:

- 乘法规则:

(5)groupByKey()
- 单词分组:

- 查看分组的内容:

- 分组之后做累加map :

(6)sortByKey()
- 词频统计按单词排序

(7)sortBy()
- 词频统计按词频排序

(8)RDD写入文本文件:
- 写入本地文件系统,并查看结果

结果:

- 写入分布式文件系统,并查看结果

结果:

2、行动操作
(1)foreach(print)

(2)foreach(lambda a:print(a.upper())

(3)collect()

(4)count()

(5)take(n)
(6)reduce()
- 数值型的rdd元素做累加

- 与reduceByKey区别:
reduce:reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。
reduceByKey:reduceByKey就是对元素为KV对的RDD中Key相同的元素的Value进行binary_function的reduce操作,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。


浙公网安备 33010602011771号