Spark文档:添加列表元素的简单示例

2024-04-26 23:27:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Spark,遇到了文档中关于并行集合的this部分。我从文档中复制了python中的以下内容,以执行Reduce步骤:

from pyspark import SparkConf, SparkContext

configuration = SparkConf().setMaster("local[4]").setAppName("Test") 
sc = SparkContext(conf = configuration)

data = [1, 2, 3, 4, 5] 
datapar = sc.parallelize(data)

result = datapar.reduce(lambda a, b: a + b) 
print result

我得到的答案是15,正如文档中所解释的,这是所有元素的相加。但是,如果我将result修改为datapar.reduce(lambda a, b: a)并打印result,我得到1,如果我将其修改为datapar.reduce(lambda a, b: b),我得到5。你知道吗

ab分别返回15,但在我的原始代码中加在一起会导致datapar中所有元素的相加?他们更喜欢语法吗?谢谢!你知道吗


Tags: lambda文档元素reducedata步骤resultthis
1条回答
网友
1楼 · 发布于 2024-04-26 23:27:04

这纯粹是一个关于^{}如何工作的问题。你知道吗

lambda函数的左参数(a在本例中)表示应用lambda函数a + b的聚合值。右边的值是iterable的更新值。例如:

iterable   a   b   a + b
========  === === =======
   1       -   -     -
   2       1   2     3
   3       3   3     6
   4       6   4    10
   5      10   5    15 <== Final result

这就是lambda a + b: a的情况

iterable   a   b     a
========  === === =======
   1       -   -     -
   2       1   2     1
   3       1   3     1
   4       1   4     1
   5       1   5     1 <== Final result

…和lambda a + b: b

iterable   a   b     b
========  === === =======
   1       -   -     -
   2       1   2     2
   3       2   3     3
   4       3   4     4
   5       4   5     5 <== Final result

相关问题 更多 >