0

私はMongoDB用のMapReduceコードを書いています(明らかにJavascriptで)。reduce コードでは、常に何らかの値 (発行と同じ) を返す必要があるように見えます。そうしない方法を見つけることができませんでしたが、reduce 関数でレコードの発行を停止できれば、コードがより単純になるのではないかと考えています。

4

2 に答える 2

0

私はあなたがどこから来たのか理解しようとしています。

MR の基本は Map Reduce の基本です。MR に reduce 関数がない場合、出力はありません。そのため、reduce 関数は常に期待されます。

map 関数から 1 つの行を発行している場合、reduce を実行する必要がないことは事実です。ただし、MR を完全に実行するには、reduce 関数を呼び出す必要があります。そうしないと、MR を無意味にする出力がありません。

reduce コードでは、常に何らかの値 (発行と同じ) を返す必要があるように見えます。

はい、これは MR が数学的にどのように機能するかによるものです。MongoDB は、この方法のみをサポートしているため、このように実行することを想定しています。

于 2012-11-24T22:59:36.143 に答える
0

エミットは完全にオプションであると思います (ちなみに、マップ内の値を「返す」ことは何もすべきではありません)。マッピング関数内で発行しないでください。結果は還元関数に到達しません。

于 2012-11-24T03:59:00.210 に答える