我可以停止从Reduce功能发出吗?

时间:2012-11-24 02:11:18

标签: mongodb mapreduce

我正在为MongoDB编写MapReduce代码(显然是在Javascript中)。在reduce代码中,看起来我必须总是返回一些值(与发射相同)?我找不到一种方法,但如果我可以停止在reduce函数中发出一条记录,我的代码可以更简单,所以我很想知道。

2 个答案:

答案 0 :(得分:0)

我相信发射是完全可选的(顺便说一句,“返回”地图中的值不应该做任何事情)。只是不要在映射函数内部发射,结果将不会使其进入缩减函数

答案 1 :(得分:0)

我想知道你来自哪里。

MR的基本原理是Map Reduce。如果您的MR没有减少功能则没有输出。因此,总是需要降低功能。

如果你从map函数中发出一行,那么reduce就不需要运行了。然而,对于MR完全运行,它必须调用reduce函数,否则没有输出使MR无意义。

  

在reduce代码中,看起来我必须总是返回一些值(与发射相同)?

是的,这是因为MR以数学方式工作:http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-Amoretechnicalexplanation您可以在那里看到它的基本解释。 MongoDB希望像这样运行它,因为它只支持这种方法。