1.前言

  最近在帮公司了解大数据方面的技术,涉及到spark的相关内容,所以想写个笔记记录一下。目前用到的时spark2.1.0的版本,仅供学习参考。

2.正文

  2.1spark官网算子的分类

  spark官网上面有对于算子的描述,但是spark对于算子的分类粒度较粗,大致为transformations和actions,其中的transformations是从一个RDD转换操作,结果仍然为RDD;而Actions则是从RDD操作变成非RDD结果。其中的transformations是由Actions触发的,即代码走到transformations的时候,并不会立即进行计算操作,而是实际等到需要action结果的时候才触发。

  • 一.Transformations
    • map算子操作
    • flatMap算子操作
    • ..算子操作
  • 二.Actions
    • ..算子操作

  以上的分类,是按照ADD实际操作的结果来划分的,粒度相对而言较粗,实际在使用RDDapi的时候,可以将transformation的再细分,实际操作的时候,会涉及到算子的值类型是Value类型或者是Key-Value类型的两类。而且根据操作后返回的RDD内分区与输入的RDD分区,也可以由一个对应关系,所以更详细的划分类型为:

 

    • Transformations
      • Value类型的transformations算子
        • 输入RDD分区与输出RDD分区一对一类型
          • 1.map算子
          • 2.flatMap算子
          • 3.mapPartitions算子
          • 4.glom算子
        • 输入RDD分区与输出RDD分区多对一类型
          • 5.union算子
          • 6.cartesian算子
        • 输入RDD分区是输出RDD分区子集类型
          • 7.filter算子
          • 8.distinct算子
          • 9.subtract算子
          • 10.sample算子
          • 11.takeSample算子
        • Cache类型
          • 12.cache算子
          • 13.persist算子
    • Key-Value类型的transformations算子
      • 输入RDD分区与输出RDD分区多对多类型
        • 14.groupByKey算子
      • 输入RDD分区与输出RDD分区一对一类型
        • 15.mapValues算子
      • 对单个或两个RDD聚集
        • 16.combineByKey算子
        • 17.reduceByKey算子
        • 18.partitionBy算子
        • 19.cogroup算子
      • 连接
        • 20.join算子
        • 21.leftOutJoin和rightOutJoin算子
  • Actions
    • 无输出
      • 22.foreach算子
    • HDFS
      • 23.saveAsTextFile算子
      • 24.saveAsTextFile算子
    • SCALA或者JAVA等的集合,数字输出类型
      • 25.collect算子
      • 26.collectAsMap算子
      • 27.reduceByKeyLocally算子
      • 28.lookup算子
      • 29.count算子
      • 30.top算子
      • 31.reduce算子
      • 32.fold算子
      • 33.aggregate算子

版权声明:本文为fenngz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/fenngz/p/9802275.html