spark算子的理解

 

 

1)Value数据类型的Transformation算子  

  一、输入分区与输出分区一对一型

    1、map算子  一次一个,一进一出。每个元素都调用一下我给的函数

    2、flatMap算子  与上面map一样,不过最后把数组或者容器拆散,放入RDD中

    3、mapPartitions算子  一次一批数据,优点比map快,缺点容易爆内存。

    4、glom算子  将分区里的数据变成Array

  二、输入分区与输出分区多对一型 

    5、union算子  两个相同元素的RDD做合并,等于++

    6、cartesian算子  做笛卡尔积运算

  三、输入分区与输出分区多对多型

    7、grouBy算子  分组,

  四、输出分区为输入分区子集型

    8、filter算子  过滤

    9、distinct算子  RDD元素去重。

    10、subtract算子  集合的差操作。RDD1-(RDD1∩RDD2)。[v1,v2][v1,v8]→[v2,v8]

    11、sample算子  随机比例抽样

        12、takeSample算子  随机个数抽样

   五、Cache型

    13、cache算子  从disk缓存到内存

    14、persist算子  不懂,比cache更高级

 

2)Key-Value数据类型的Transfromation算子

  一、输入分区与输出分区一对一

    15、mapValues算子  针对value进行map操作

  二、对单个RDD或两个RDD聚集

   单个RDD聚集

    16、combineByKey算子  RDD内部聚合,[v1,2|v1,1|v2,2]→[v1,Sep(2,1)|v2,Sep(2)]

    17、reduceByKey算子  比combine简单,两个值合并成一个值。[v1,2|v1,1|v2,2]→[v1,3|v2,2]

    18、partitionBy算子  会重新分区,shuffled。[v1,2|v2,1|w3,1], [v2,2|u1,1]→[v1,2|v2,1|v2,2], [w3,1], [u1,1]

   两个RDD聚集

    19、Cogroup算子  合并成一个RDD

  三、连接

    20、join算子  

    21、leftOutJoin和 rightOutJoin算子  

 3)Action算子

  一、无输出

    22、foreach算子  

  二、HDFS

    23、saveAsTextFile算子  

    24、saveAsObjectFile算子  

  三、Scala集合和数据类型  

    25、collect算子  

    26、collectAsMap算子  

      27、reduceByKeyLocally算子  

      28、lookup算子  

    29、count算子  

    30、top算子  

    31、reduce算子  

    32、fold算子  

    33、aggregate算子  

 

posted @ 2022-04-09 11:04  Ghose  阅读(76)  评论(0)    收藏  举报