PySpark-了解Lambda函数-基本问题

时间:2018-12-02 11:25:51

标签: apache-spark lambda pyspark

我有这个RDD:

[{'gender': 'm', 'age': 45, 'name': 'Amit'}, {'gender': 'f', 'age': 43, 'name': 'Ganga'}, {'gender': 'm', 'age': 28, 'name': 'John'}, {'gender': 'f', 'age': 33, 'name': 'NA'}]

我在一个示例中发现了此功能:

#Sum of the ages
    seqOp=(lambda x,y: (x[0]+y["age"], x[1]+1))
#Number of partitions
    combOp = (lambda x,y: (x[0] + y[0], x[1]+y[1]))

并打印结果:

peopleRDD.aggregate((0,0), seqOp, combOp)

如果我打印结果,它将给出逻辑结果:(149, 4),但是我很难理解原因。

我在理解这些lambda函数如何工作时遇到了麻烦。

为什么更改seqOp函数的参数会导致分区数量返回不同的结果?

有人可以帮助我了解它如何工作吗?

0 个答案:

没有答案