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

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

- 与原文件对比

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

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

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

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

- 停止hdfs
stop-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对。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通