【spark】Value型transformation算子

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

1. 一对一

  • map: 通过f(x)实现一一对应的运算,输入输出RDD分区不变
map
  • flatmap: 通过f(x)实现一一对应的运算,和map不同的是输出分区将合并为一个RDD分区(不管输入有几个RDD分区)
flatmap
  • mapPartitions: 按照f(x)把输入分区过滤为输出分区,输入输出RDD分区不变
mapPartitions
  • glom: 把输入分区数据集合成Array结构放在输出分区中,输入输出RDD分区不变
glom

2. 多对一

  • union: 将输入分区的RDD中的多个或一个RDD分区合并为输出分区中的RDD的一个RDD分区(不去重),输入输出RDD个数不变
union
  • cartesian: 将输入分区做笛卡尔积,RDD合并为一个,输入RDD总分区不变
cartesian

3. 多对多

  • groupBy: 根据key值整合(** 不太明白,以后补充**)
groupBy

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

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

5. 特殊一对一,Cache

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容