是否所有MapReduce实现都将keys参数输入到reduce函数中?

是否所有MapReduce实现都将keys参数输入到reduce函数中?,mapreduce,Mapreduce,之前我问过向CouchDB的reduce函数传递一系列键的用例是什么;答案提到了两个潜在的用例: 从设计角度来看,您可能希望使用映射函数发出的键 您可能正在根据键输入计算某些内容,例如特定键出现的频率 MapReduce的所有实现是否都将一组键作为reduce函数的输入?CouchDB专门跟踪生成密钥的原始文档。i、 e.CouchDB reduce函数的输入: function(keys, values, rereduce) {...} keys arg如下所示:[[key1,id1],[k

之前我问过向CouchDB的reduce函数传递一系列键的用例是什么;答案提到了两个潜在的用例:

从设计角度来看,您可能希望使用映射函数发出的键 您可能正在根据键输入计算某些内容,例如特定键出现的频率 MapReduce的所有实现是否都将一组键作为reduce函数的输入?CouchDB专门跟踪生成密钥的原始文档。i、 e.CouchDB reduce函数的输入:

function(keys, values, rereduce) {...}
keys arg如下所示:[[key1,id1],[key2,id2],[key3,id3]]


i、 e.coach跟踪作为Map函数结果发出密钥的实体,即使在reduce函数中也是如此。其他MapReduce实现是否跟踪此信息?或者这是CouchDB特有的…

并非所有mapreduce实现都具有与CouchDB相同的结构。 例如,在mongodb mapreduce中,与Coach db不同,只有一个键和值列表。所以,map函数发出的所有键都被分组并作为一个键和值列表传递给reduce函数

例如:

emit(1,10)
emit(1,20)
将分组为

reduce(1,[10,20])

问题-您是否知道MapReduce实现中,reduce函数不是以键列表作为输入的情况?