我有一个rdd的键,值对。值是python字典。我有下面的合并函数将两个字典合并在一起
def combine(d1, d2):
d1.update(d2)
return d1
然后我打电话来 rdd.reduceByKey(combine)
减少输入rdd。
我有一种感觉,修改输入可能会打破联想和交换的要求。输出确实是不确定的,会丢失大量数据。
将函数更改为以下内容可以解决此问题。
def reduce(d1, d2):
d = {}
d.update(d1)
d.update(d2)
return d
然而,我想了解更多关于为什么第一个实现是错误的。我的印象是reducebykey在每个分区内按顺序工作,同时在不同分区之间工作。在这种情况下,一次只能由一个worker访问输入。
暂无答案!
目前还没有任何答案,快来回答吧!