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对。

 

posted @ 2022-03-16 11:12  Ls1ion  阅读(47)  评论(0)    收藏  举报