0
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)
集約関数をしようとしていると私は、前のコードの3行目を変更した場合、結果は
res is (15, 5)
です。しかし:
comb = (lambda x,y:(y[0],y[1]))
結果は同じです
res is (15, 5)
私は2つの結果のタプルをマージしていないので、これはありません。
私は
comb = (lambda x,y:(x[0],x[1]))
に再びそれを変更した場合、結果は次のとおりです。
res is (0, 0)
誰かがそれを説明することはできますか?
全くありません。私は(0,0)を変更しなかった。私は、combOp関数を変更します。 – Jingwei
Sparkのどのバージョンで作業しているか教えていただけますか?私はSpark 2.1で 'comb =(λx、y:(x [0] + y [0]、x [1] + y [1]))'の結果を ' 'comb =(ラムダx、y:(y [0]、y [1]))'の結果は '(5,1)'でした。 –
ところで、私もSpark 1.6.3でこれをテストしました。 –