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

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