一、在Apache Spark中,RDD(d性分布数据集)是一个非常重要的核心概念,很多计算必须依赖于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定义的逻辑处理。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)