欢迎光临散文网 会员登陆 & 注册

PySpark RDD有几种类型算子?

2023-02-16 16:18 作者:ingemar-  | 我要投稿

算子:分布式集合对象上的API称之为算子。

RDD的算子分为两类:

  • Transformation:转换算子;

  • Action:动作(行动)算子。


Transformation算子

1 值类型valueType

map: map(func):

  将func函数作用到数据集的每一个元素上,生成一个新的RDD返回。

map: map(func):

自定义Python函数:

上述代码类似于:

groupBy

Filter:

filter(func) 选出所有func返回值为true的元素,生成一个新的RDD返回

Flatmap:

flatMap会先执行map的操作,再将所有对象合并为一个对象

flatMap和map的区别:

flatMap在map的基础上将结果合并到一个list中


RDD算子概念及分类

2 双值类型DoubleValueType 

Union:对两个RDD求并集

Intersection:对两个RDD求交集

3 Key-Value值类型

groupByKey:

以元组中的第0个元素作为key,进行分组,返回一个新的RDD

groupByKey之后的结果中 value是一个Iterable

reduceByKey:将key相同的键值对,按照Function进行计算

sortByKey:根据key进行排序

countByValue

 

RDD算子超详细视频讲解



Action算子

collect

返回一个list,list中包含 RDD中的所有元素

只有当数据量较小的时候使用Collect 因为所有的结果都会加载到内存中

reduce

 reduce将RDD中元素两两传递给输入函数,同时产生一个新的值,新产生的值与RDD中下一个元素再被传递给输入函数直到最后只有一个值为止。

first

返回RDD的第一个元素

take

   返回RDD的前N个元素,`take`(*num*)

Top:排序取前几个从大到小   

Count:返回RDD中元素的个数

takeSample   


foreach

仅返回满足foreach内函数条件元素。在下面的示例中,我们在foreach中调用print函数,它打印RDD中的所有元素。



PySpark RDD有几种类型算子?的评论 (共 条)

分享到微博请遵守国家法律