zoukankan      html  css  js  c++  java
  • Spark常用算子总结

    Spark 算子大致可以分为以下两类:

    1)Transformation 变换/转换算子:这种变换并不触发提交作业。

         这种操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD的转换的操作并不会马上执行,而是要等到有 Action 操作的时候才会触发。

    2)Action 行动算子:这类算子会触发 SparkContext 提交 Job 作业。

         Action 算子会触发 Spark 提交作业(Job),并将数据输出 Spark系统。

      而Transformation算子有可以分为2类:

      1)Value数据类型的Transformation算子,针对处理的数据项是Value型的数据。
      2)Key-Value数据类型的Transfromation算子,针对处理的数据项是Key-Value型的数据对。

    1、Transformations 算子
    map

      将原来RDD的每个数据项通过 map 中的用户自定义函数 f 映射转变为一个新的元素。

    flatMap
    将原来 RDD 中的每个元素通过函数 f 转换为新的元素,并将生成的 RDD 的每个集合中的元素合并为一个集合。

    groupBy
      groupBy :将元素通过函数生成相应的 Key,数据就转化为 Key-Value 格式,之后将 Key 相同的元素分为一组。

    filter
    filter 函数功能是对元素进行过滤,对每个 元 素 应 用 f 函 数, 返 回 值 为 true 的 元 素 在RDD 中保留,返回值为 false 的元素将被过滤掉。

    2、Actions 算子

    foreach
      foreach 对 RDD 中的每个元素都应用 f 函数操作,不返回 RDD 和 Array, 而是返回Uint。

    foreachPartition
      foreachPartition和foreach类似,只不过是对每一个分区使用f。一份待处理的原始数据会被按照相应的逻辑(例如jdbc和hdfs的split逻辑)切分成n份,每份数据对应到RDD中的一个Partition,Partition的数量决定了task的数量,影响着程序的并行度.

    saveAsTextFile
      函数将数据输出,存储到 HDFS 的指定目录。

    collect
      将分布式的 RDD 返回为一个单机的 scala Array 数组。在这个数组上运用 scala 的函数式操作。

    count
      返回整个 RDD 的元素个数。

    saveAsNewAPIHadoopDataset(org.apache.hadoop.conf.Configuration conf)
      把task中的数据通过指定的output format写入到hadoop的实现接口中(例如把JavaPairRDD<ImmutableBytesWritable, Put>类型的数据写入到Hbase中)

  • 相关阅读:
    javaEE企业级基础介绍(一)
    SQL学习笔记系列(十)窗口函数
    SQL学习笔记系列(九)索引优化分析
    Tableau教程笔记
    淘宝用户行为分析--基于MySQL、Tableau
    Stop thinking,start living--《心灵奇旅》观后感
    SQL刷题
    SQL学习笔记系列(八)流程控制结构
    SQL学习笔记系列(七)存储过程和函数
    在超算系统上使用sbatch提交MXNet分布式训练任务
  • 原文地址:https://www.cnblogs.com/mycd/p/9173914.html
Copyright © 2011-2022 走看看