PySpark RDD 之 reduce

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

 

4. notebook

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章