我有这个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
函数的参数会导致分区数量返回不同的结果?
有人可以帮助我了解它如何工作吗?