Spark的 *** 作算子

Spark的 *** 作算子,第1张

Spark的 *** 作算子 Spark的 *** 作算子

一、在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定义的逻辑处理。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5715262.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存