零基础入门Spark fold操作(Java版)

市面上大多都是Scala的教程 , 这里专门介绍如何使用Java编写相关Spark程序 。
什么是JavaRDD fold操作fold函数是一种聚合操作 , 把所有RDD中的元素进去聚合操作 。
JavaRDD fold函数参数解释fold函数有两个参数 , 分别是 zeroValue , Function2 。

  • zeroValue参数是聚合时的初始值 , 值得注意的是 , 聚合操作分两步 , 两步都使用到了该初始值 。
  1. 聚合每个分区的值
  2. 聚合所有分区聚合后的值
  • Function2提供聚合函数的具体实现 。
JavaRDD fold操作的简单例子这个例子的输出结果是: zeroValue,zeroValue,Spark,zeroValue,HBase,zeroValue,Hive
零基础入门Spark fold操作(Java版)文章插图
【零基础入门Spark fold操作(Java版)】执行步骤可以理解如下:
第一分区聚合的值是:zeroValue,Spark 。
第二分区聚合的值是:zeroValue,HBase 。
第三分区聚合的值是:zeroValue,Hive 。
最后聚合分区后的聚合就是 zeroValue,zeroValue,Spark,zeroValue,HBase,zeroValue,Hive
总结该操作最重要的就是理解zeroValue参与计算的地方 。 特别主要 , 每个分区的聚合计算都参与 , 把每个分区聚合后的值在进行聚合也参与计算 , 搞清楚这点就彻底掌握改函数了 。