Spark的操作算子
一、在Apache Spark中,RDD(弹性分布数据集)是一个非常重要的核心概念,很多计算必须依赖于RDD。一般来说,RDD包括两个操作算子:
- 变换:变换算子的特点是懒执行,变换操作并不会立即执行,而是需要等到有动作操作的时候才会真正进行计算,并得到结果。
- 动作:动作算子的特点是立即执行,动作算子会对
RDD计算出一个结果,并把结果返回到驱动器程序中,或把结果存储到外部存储系统(如HDFS)中。
二、Spark的操作算子(以PySpark为例)
-
first操作动作算子,
rdd.first(),获取rdd中的第一个元素。 -
max操作动作算子,
rdd.max(),获取rdd中的最大的元素。 -
sum操作动作算子,
rdd.sum(),返回rdd中的求和数值。 -
take操作动作算子,
rdd.take(n),获取rdd中前n个元素。 -
top操作动作算子,
rdd.top(n),获取降序后的rdd中前n个元素。 -
collect操作动作算子,
rdd.collect(),从集群中拉取rdd的元素到driver端,转化为数组。 -
collectMap操作动作算子,
rdd.collectMap(),与collect操作类似,适用于键值RDD,将它们转换为Map映射以保留其键值结构。 -
countByKey操作动作算子,
rdd.countByKey(),统计键值rdd中每个key的数量,以字典形式返回 -
countByValue操作动作算子,
rdd.countByValue(),统计rdd中每个元素的数量,以字典的形式返回。 -
glom操作变换算子,
rdd.glom(),将rdd各分区的元素转化为数组形式。 -
coalesce操作变换算子,
rdd.coalesce(n, isShuffle=Flase),对rdd重新划分n个区,其中isShuffle(默认为False)表示重新分区过程中是否进行混淆操作。 -
combineByKey操作变换算子,
rdd.combineByKey(createCombiner, mergeValue, mergeCombiners, numPartitions=None, partitionFunc=portable_hash),其中前3个参数为必填,为操作函数。(1)
createCombiner(V) -> C函数,对每个key下的第一个值V进行初始化成C,如类型转换等。(2)
mergeValue(C, V) -> C函数,将key下的其它值添加到(1)初始化的C中.(3)
mergeCombiners(C, C2) -> C函数,对(2)中以完成合并的各key组合C,进行合并. -
distinct操作变换算子,
rdd.distinct(),对rdd去重。 -
filter操作变换算子,
rdd.filter(func),返回rdd中满足func的元素。 -
flatMap操作变换算子,
rdd.flatMap(func),对rdd中的元素按func处理,将处理进行扁平化处理。 -
flatMapValues操作变换算子,
rdd.flatMapValues(func),对键值格式的rdd中的value进行func定义的逻辑处理。
1034

被折叠的 条评论
为什么被折叠?



