考虑使用以下数据集的Rdd 其中10000241是关键,剩下的是值
('10000241',([0,0,1],[None,None,'RX']))
('10000241',([0,2,0],[None,'RX','RX']))
('10000241',([3,0,0],['RX',None,None]))
pv1 = rdd.reduceBykey(lambda x,y :(
addtup(x[0],y[0]),
addtup(x[1],y[1]),
))
def addtup(t1,t2):
j =()
for k,v in enumerate(t1):
j = j + (t1[k] + t2[k],)
return j
我想要的最终输出是(10000241,(3,2,1)('RX','RX','RX)) 但我得到的错误是无法将无类型添加到无类型或非类型到Str。我可以解决这个问题吗?
答案 0 :(得分:1)
如果我理解正确,你想在第一个元组中总结数字并使用逻辑或在第二个元素中?
我认为你应该重写你的功能如下:
<h3>Facebook</h3>
<ul>
{{#each model.facebookFeedObjects as |obj|}}
<li>
<h4>{{obj.message}}</h4>
<ul>
{{#each obj.comments as |comment|}}
<li>{{comment}}</li>
{{/each}}
</ul>
</li>
{{/each}}
</ul>
然后你可以像这样使用它:
def addtup(t1,t2):
left = list(map(lambda x: sum(x), zip(t1[0], t2[0])))
right = list(map(lambda x: x[0] or x[1], zip(t1[1], t2[1])))
return (left, right)
这是一个演示
rdd.reduceBykey(addtup)