作业四:1. RDD创建 2. RDD操作

1. RDD创建

  1. 从本地文件系统中加载数据创建RDD
图1.1 查看文本信息

图1.2 本地文件加载数据

  1. 从HDFS加载数据创建RDD
# 启动HDFS
start-all.sh

# 查看HDFS文件
hdfs dfs -ls 查看的文件目录
图2.1 启动HDFS

# 上传文件到HDFS
hdfs dfs -put 本地文件路径 HDFS目的路径

# 查看HDFS文件
hdfs dfs -cat 文件名称
图2.2 上传/查看文件

# HDFS加载数据创建RDD
sc.textFile("hdfs://master:9000/user/hadoop/my.txt")
图2.3 HDFS加载数据

图2.4 查看HDFS

# 停止hdfs
stop-all.sh
图2.5 停止HDFS

  1. 通过并行集合(列表)创建RDD
图3.1 列表/字符串

图3.2 生成数组

2. RDD操作

转换操作

  1. filter(func)
图1.1 显式定义函数

图1.2 lambda函数

  1. map(func)
  • 字符串分词
图2.1 显式定义函数

图2.2 lambda函数

  • 数字加100
图2.1 显式定义函数

图2.2 lambda函数

  • 字符串加固定前缀
图2.1 显式定义函数

图2.2 lambda函数

  1. flatMap(func)
  • 分词

  • 单词映射成键值对

  1. reduceByKey()
  • 统计词频,累加

  • 乘法法则

  1. groupByKey()
  • 单词分组

  • 查看分组内容

  • 分组后做累加map

  1. sortByKey()
  • 词频统计按单词排序

  1. sortBy()
  • 词频统计按词频排序

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


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


行动操作

  1. foreach(print)

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

  1. collect()

  1. count()

  1. first()

  1. take(n)

  1. reduce()
  • 数值型的rdd元素做累加

  • 与reduceByKey的区别
    --reduce:把RDD中的每一个元素拿出来处理并形成一个新的RDD元素。reduce处理数据时有着一对一的特性,它会把数据集合中每一个元素都处理一次,并且每一个元素都对应着一个输出。

    --reduceByKey:把RDD中的key相同的一组数据拿出来处理,形成一个新的RDD。reduceByKey处理数据时有着多对一的特性,它会把所有key相同的值处理并且进行归并,其中归并的方法可以自己定义。
posted @ 2022-03-17 16:41  *啥也不是*  阅读(63)  评论(0编辑  收藏  举报