转换算子
RDD根据数据处理的方式不同将算子整体上分为单Value类型、双Value类型和Key-Value类型
- 单Value类型
- map
将处理的数据逐条进行映射转换,这里的转换可以是类的转换,也可以是值的转换。 - mapPartitions
将待处理的数据以分区为单位发送到计算节点进行处理,也就是一次处理一个分区的数据,而不是像map函数一样逐条处理。这里的处理是指可以进行任意的处理。 - mapPartitionsWithIndex
将待处理的数据以分区为单位发送到计算节点进行处理,这里的处理是指可以进行任意的处 理,哪怕是过滤数据,在处理时同时可以获取当前分区索引。 - flatMap
将处理的数据进行扁平化后再进行映射处理,也称扁平映射。 - glom
将同一个分区的数据直接转换为相同类型的内存数组进行处理,分区不变 - groupBy
将数据根据指定的规则进行分组,分区默认不变,但是数据会被打乱重组,我们将这样的操作称为shuffle。极限情况下,数据可能被分在同一个分区中。一个组的数据在一个分区中,但并不是说一个分区中只有一个组。

- filter
将数据根据指定的规则进行筛选过滤,符合规则的数据保留,不符合规则的丢弃。当筛选后,分区不变,这样就可能导致数据不

本文详细介绍了Spark中的转换算子,包括单Value类型、双Value类型和Key-Value类型的算子,如map、filter、reduceByKey和groupByKey等,并讨论了引起Shuffle的算子。此外,还对比了reduceByKey与groupByKey的区别,以及阐述了Repartition和Coalesce的关系与应用场景。
最低0.47元/天 解锁文章
2590

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



