spark常用算子-action

spark action常用算子类型如下:
1.aggregate [U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U:算子中参数zeroValue是初始值;seqOp是分区内Task的执行逻辑,首先是zeroValue与分区内的第一个元素业务逻辑操作再依次与剩余元素进行同样操作,最后还回与zeroValue一样的类型;combOp是把各个分区的结果聚集到一起进行逻辑业务操作,起始也是由zeroValue于第一个分区业务逻辑操作再依次与剩余分区业务逻辑操作,输入与输出类型都与zeroValue类型一致。

/**
    * 初始值与分区内每个元素合并
    *
    * @param a
    * @param b
    * @return
    */
  def seqOp(a: String, b: Int): String = {
    a + b
  }

  /**
    * 各个分区结果合并
    *
    * @param a
    * @param b
    * @return
    */
  def combOp(a: String, b: String): String = {
    a + b
  }
val rdd = sc.parallelize(List(1, 2, 3, 4, 5, 6), 2)
val rdd2 = rdd.aggregate("-")(seqOp, combOp)
结果如下:--123-456
说明:zeroValue先在每个分区与元素业务逻辑操作,再与各个分区结果依次操作,2个分区故结果有3个-

未完待续

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