4.RDD操作

一、RDD创建

1.从本地文件系统中加载数据创建RDD

  • SparkContext的创建

  • 从文件系统中加载数据创建RDD

  • 与原文件对比

2.从HDFS加载数据创建RDD

  • 启动hdfsstart-all.sh

  • 上传文件hdfs dfs -put 要上传的文件路径 上传目的路径

  • 查看文件hdfs dfs -ls 要查看的文件目录

  • 加载sc.textFile("hdfs://master:9000/user/hadoop/hwt.txt")

  • 停止hdfsstop-all.sh

3.通过并行集合(列表)创建RDD

  • 输入列表、字符串、生成数组

二、RDD操作

转换操作

1.filter(func)

  • 传入lambda匿名函数

  • 显式定义函数

2.map(func)

  • 字符串分词
  • lambda函数

  • 显式定义函数

  • 数字加100
  • lambda函数

  • 显式定义函数

  • 字符串加固定前缀
  • lambda函数

  • 显式定义函数

3.flatMap(func)

  • 分词

  • 单词映射成键值对

4.reduceByKey()

  • 统计词频,累加

  • 乘法规则

5.groupByKey()

  • 单词分组

  • 查看分组的内容

  • 分组之后做累加 map

6.sortByKey()

  • 词频统计按单词排序

7.sortBy()

  • 词频统计按词频排序

  • 查看分区数 getNumPartitions()

  • 生成不同分区数的rdd

8.RDD写入文本文件

  • 写入本地文件系统,并查看结果




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



行动操作

1.foreach(print) ----将数据集中的每个元素进行输出


 foreach(lambda a:print(a.upper())) ----将数据集中的每个元素传递到lambda函数中运行


2.collect() ----以数组的形式返回数据集中的所有元素


3.count() ----返回数据集中的元素个数


4.first() ----返回数据集中的第一个元素


5.take(n) ----以数组的形式返回数据集中的前n个元素


6.reduce() ----通过函数func(输入两个参数并返回一个值)聚合数据集中的元素

  • 数值型的rdd元素做累加

  • 与reduceByKey区别

reduce : reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止。

reduceByKey : 对元素为KV对的RDD中Key相同的元素的Value进行binary_function的reduce操作,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。

posted @ 2022-03-22 18:45  Yeav  阅读(204)  评论(0编辑  收藏  举报