我正在尝试聚合功能
num = sc.parallelize([1,2,3,4,5])
seq = (lambda x,y:(x[0]+y,x[1]+1))
comb = (lambda x,y:(x[0]+y[0],x[1]+y[1]))
res = num.aggregate((0,0),seqOp=seq,combOp=comb)
print("res is ",res)
,结果是
res is (15, 5)
但如果我将之前代码的第三行更改为:
comb = (lambda x,y:(y[0],y[1]))
结果仍然相同
res is (15, 5)
不应该这样,因为我没有合并两个产生的元组。
如果我再次改为
comb = (lambda x,y:(x[0],x[1]))
结果是:
res is (0, 0)
有人可以解释一下吗?
答案 0 :(得分:1)
请确保您正在使用哪种模式,尤其是在使用独立模式时应该发生这种情况。
答案 1 :(得分:0)
我自己得到了答案。 这是在独立模式下发生的,其中x是(0,0),y是(15,5)。