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