Spark算子fold的直观理解

 

 

 

 以上几个rdd中的分区数分别为1、1、2、2,相应的fold()函数给出的初始值为0、1、0、1,用到的add是求和函数;

可以这样理解,fold()函数是对rdd的数据分别求和,fold的中文意思为折叠,那么就是先将各个分区的数据折叠(求和),最后分区分别折叠完成后,再整体折叠一下,对应的总结一个公式就是《(分区数+1)×初始值+各元素数据的求和值》。

运用这个自己总结的公式可以再试一次,如下所示:

 分区数为20,初始值为3,各元素的和为1+2+3+4+5=15

通过公式理解就是《(20+1)×3+15》,结果为78。

希望可以帮助大家理解!

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache Spark是一个强大的分布式计算框架,它提供了易用且高效的API进行大数据处理。Spark的核心抽象是"数据集"(Dataset)和"RDD"(Resilient Distributed Dataset),其中"行动算子"(Action Operator)是执行这些操作的关键组件。 行动算子Spark中用于从数据集中创建结果的那些操作,它们分为两类: 1. **转换动作(Transformation Operations)**:这些不直接产生输出,而是对数据集进行处理,生成一个新的数据集,如`map()`、`filter()`、`reduce()`等。例如,`map()`会应用一个函数到数据集中的每个元素上,生成一个新的元素序列;`filter()`则基于给定的条件选择数据集中的元素。 2. **行动动作(Action Operations)**:这些是真正的“行动”,它们会产生结果并立即返回给用户。常见的行动算子有: - `collect()`:将整个数据集收集到内存中,适合小规模数据或者验证操作结果。 - `count()`:返回数据集中元素的数量。 - `first()`:返回数据集的第一个元素。 - `reduce()`或`fold()`:聚合数据集中的所有元素。 - `sum()`、`max()`、`min()`:对数值数据集进行简单统计。 - `saveAsTextFile()` 或 `write()`:将数据集保存到文件系统。 行动算子的特点是它们会在后台启动一个任务,该任务会对数据进行计算,并最终返回结果。这些操作通常会触发数据的一次性计算,而不是多次迭代。如果你想要多次查看中间结果,应该使用转换动作,然后配合`cache()`来缓存结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值