pyspark.RDD.aggregate ¶
-
RDD.
aggregate
( zeroValue : U , seqOp : Callable [ [ U , T ] , U ] , combOp : Callable [ [ U , U ] , U ] ) → U [source] ¶ -
使用给定的组合函数和中性“零值”聚合每个分区的元素,然后聚合所有分区的结果。
函数
op(t1, t2)
允许修改t1
并将其作为结果值返回,以避免对象分配;但是,它不应修改t2
。第一个函数 (seqOp) 可以返回一个不同于 RDD 类型的结果类型 U。因此,我们需要一个操作来将 T 合并到 U 中,以及一个操作来合并两个 U。
新增于版本 1.1.0。
- Parameters
-
- zeroValue U
-
每个分区累积结果的初始值
- seqOp function
-
用于在分区中累积结果的函数
- combOp function
-
用于组合来自不同分区的结果的关联函数
- Returns
-
- U
-
聚合结果
另请参阅
示例
>>> seqOp = (lambda x, y: (x[0] + y, x[1] + 1)) >>> combOp = (lambda x, y: (x[0] + y[0], x[1] + y[1])) >>> sc.parallelize([1, 2, 3, 4]).aggregate((0, 0), seqOp, combOp) (10, 4) >>> sc.parallelize([]).aggregate((0, 0), seqOp, combOp) (0, 0)