【spark】Value型transformation算子

分类(按输入分区和输出分区)

1. 一对一

  • map: 通过f(x)实现一一对应的运算,输入输出RDD分区不变
【spark】Value型transformation算子_第1张图片
map
  • flatmap: 通过f(x)实现一一对应的运算,和map不同的是输出分区将合并为一个RDD分区(不管输入有几个RDD分区)
【spark】Value型transformation算子_第2张图片
flatmap
  • mapPartitions: 按照f(x)把输入分区过滤为输出分区,输入输出RDD分区不变
【spark】Value型transformation算子_第3张图片
mapPartitions
  • glom: 把输入分区数据集合成Array结构放在输出分区中,输入输出RDD分区不变
【spark】Value型transformation算子_第4张图片
glom

2. 多对一

  • union: 将输入分区的RDD中的多个或一个RDD分区合并为输出分区中的RDD的一个RDD分区(不去重),输入输出RDD个数不变
【spark】Value型transformation算子_第5张图片
union
  • cartesian: 将输入分区做笛卡尔积,RDD合并为一个,输入RDD总分区不变
【spark】Value型transformation算子_第6张图片
cartesian

3. 多对多

  • groupBy: 根据key值整合(** 不太明白,以后补充**)
【spark】Value型transformation算子_第7张图片
groupBy

4. 输出分区为输入分区子集

  • filter: 根据f(x)进行过滤,f(x) return true 保留,RDD分区一致
【spark】Value型transformation算子_第8张图片
filter
  • distinct: 去重,RDD分区一致
【spark】Value型transformation算子_第9张图片
distinct
  • subtract: 输入分区中RDD中对应的RDD分区做差积,RDD数、RDD分区数一致(** 不知道差积结果为空的情况 **)
【spark】Value型transformation算子_第10张图片
subtract
  • simple: SampledRDD(withReplacement,fraction,seed)
    ·withReplacement=true,表示有放回的抽样;
    ·withReplacement=false,表示无放回的抽样。

5. 特殊一对一,Cache

你可能感兴趣的:(【spark】Value型transformation算子)