我有一个具有元素形式的键值 rdd:
(键,((v1,v2),1))
我想使用 reduceByKey 能够为同一个键分别收集所有 v1 和 v2 的总和,并将同一索引中的所有 1 相加,这样得到的 reduce rdd 有:
(键,((sum_v1,sum_v2),sum_1s))
我尝试了几次试验,例如:
.reduceByKey(lambda (p1,x), (p2,y) : (p1[0]+p2[0], p1[1]+p2[1]), x+y))
和其他一些类似的试验但都是徒劳的,我得到 'x' is undefined 和类似的错误命令.. 那么合适的功能是什么??
谢谢!!
请您参考如下方法:
你的值的格式是:((v1, v2), one)
为了减少这 3 个参数,请尝试以下操作,它在 reduceByKey(lambda x,y:x+ y)
.reduceByKey(lambda ((v1a,v2a),onea), ((v1b,v2b),oneb) : ((v1a+v1b,v2a+v2b),onea+oneb) )
