1. pyspark 版本
2.3.0版本
2. 官网
reduce
(f)[source]
Reduces the elements of this RDD using the specified commutative and associative binary operator. Currently reduces partitions locally.
中文: 使用指定的交换和关联二进制操作符减少此RDD的元素。当前在本地减少分区。
>>> from operator import add
>>> sc.parallelize([1, 2, 3, 4, 5]).reduce(add)
15
>>> sc.parallelize((2 for _ in range(10))).map(lambda x: 1).cache().reduce(add)
10
>>> sc.parallelize([]).reduce(add)
Traceback (most recent call last):
...
ValueError: Can not reduce() empty RDD
3. 我的代码
列1: 汇总rdd所有元素的,这个和分区有关
from pyspark import SparkContext, SparkConf
conf = SparkConf().setMaster("local").setAppName("reduce")
sc = SparkContext(conf=conf)
lines = sc.parallelize([1, 2, 3 , 4 , 5])
# count() 统计元素个数
print('lines 中有元素:', lines.count())
sum = lines.reduce(lambda x,y:x+y)
print('元素总和为: ', sum)
>>> lines 中有元素: 5
>>> 元素总和为: 15