pyspark.RDD.fold

RDD. fold ( zeroValue : T , op : Callable [ [ T , T ] , T ] ) → T [source]

使用给定的结合函数和中性“零值”聚合每个分区的元素,然后聚合所有分区的结果。

函数 op(t1, t2) 允许修改 t1 并将其作为结果值返回,以避免对象分配;但是,它不应修改 t2

这与在像Scala这样的函数式语言中为非分布式集合实现的折叠操作有些不同。这个折叠操作可能会分别应用于各个分区,然后将这些结果折叠成最终结果,而不是按照某种定义的顺序依次将折叠应用于每个元素。对于不满足交换律的函数,结果可能与应用于非分布式集合的折叠结果不同。

新增于版本 0.7.0。

Parameters
zeroValue T

每个分区累积结果的初始值

op function

一个用于在分区内部累积结果并组合不同分区结果的函数

Returns
T

聚合结果

示例

>>> from operator import add
>>> sc.parallelize([1, 2, 3, 4, 5]).fold(0, add)
15