4.RDD操作
目录
- 一、 RDD创建
- 从本地文件系统中加载数据创建RDD
- 从HDFS加载数据创建RDD
- 通过并行集合(列表)创建RDD
- 二、 RDD操作
- 转换操作
- filter(func)
- map(func)
- flatMap(func)
- reduceByKey()
- groupByKey()
- sortByKey()
- sortBy()
- 行动操作
- foreach(func)
- collect()
- count()
- take(n)
- reduce()
- 转换操作
一、 RDD创建
从本地文件系统中加载数据创建RDD
sc:SparkContext(shell自动创建)
本地文件系统中加载数据创建RDD
Spark采用textFile()方法来从文件系统中加载数据创建RDD
该方法把文件的URI作为参数,这个URI可以是:
本地文件系统的地址
或者是分布式文件系统HDFS的地址
或者是Amazon S3的地址等等
从HDFS加载数据创建RDD
启动hdfs
上传文件
查看文件
spark内加载文件
textFile默认是读hdfs,所以hdfs可以省略。
hdfs的默认目录,前三条语句是完全等价的,可以使用其中任意一种方式
不是默认目录,要还上路径
停止hdfs
通过并行集合(列表)创建RDD
输入列表、字符串、numpy生成数组
二、 RDD操作
转换操作
对于RDD而言,每一次转换操作都会产生新的RDD,供给下一个“转换”使用
转换得到的RDD是惰性求值的,也就是说,整个转换过程只是记录了转换的轨迹,并不会发生真正的计算,只有遇到行动操作时,才会发生真正的计算,开始从血缘关系源头开始,进行物理的转换操作
操作 含义
filter(func)
筛选出满足函数func的元素,并返回一个新的数据集
map(func)
将每个元素传递到函数func中,并将结果返回为一个新的数据集
flatMap(func)
与map()相似,但每个输入元素都可以映射到0或多个输出结果
groupByKey()
应用于(K,V)键值对的数据集时,返回一个新的(K, Iterable)形式的数据集
reduceByKey(func)
应用于(K,V)键值对的数据集时,返回一个新的(K, V)形式的数据集,其中每个值是将每个key传递到函数func中进行聚合后的结果
filter(func)
显式定义函数
结果不明显,换个关键词
lambda函数
map(func)
字符串分词
显式定义函数
lambda函数
数字加100
显式定义函数
lambda函数
字符串加固定前缀
显式定义函数
lambda函数
flatMap(func)
分词
单词映射成键值对
reduceByKey()
统计词频,累加
乘法规则
groupByKey()
单词分组
查看分组的内容
分组之后做累加 map
sortByKey()
词频统计按单词排序
sortBy()
词频统计按词频排序
行动操作
行动操作是真正触发计算的地方。Spark程序执行到行动操作时,才会执行真正的计算,从文件中加载数据,完成一次又一次转换操作,最终,完成行动操作得到结果。
操作 含义
count()
返回数据集中的元素个数
collect()
以数组的形式返回数据集中的所有元素
first()
返回数据集中的第一个元素
take(n)
以数组的形式返回数据集中的前n个元素
foreach(func)
将数据集中的每个元素传递到函数func中运行
reduce(func)
通过函数func(输入两个参数并返回一个值)聚合数据集中的元素
foreach(func)
foreach(print)
foreach(lambda a:print(a.upper())
collect()
count()
take(n)
reduce()
数值型的rdd元素做累加
与reduceByKey区别
reduceByKey(func)应用于(K,V)键值对的数据集时,返回一个新的(K, V)形式的数据集,其中的每个值是将每个key传递到函数func中进行聚合后得到的结果
以上是 4.RDD操作 的全部内容, 来源链接: utcz.com/z/536385.html