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