我已经成功地使用 Mongodb 和 MapReduce 将超过 500 万行的销售报表汇总到 60k 左右。对结果非常满意,但我对结果中的一行感到困惑,其中似乎连接了结果而不是求和,所以我最终得到了一个包含“0.00590100000000.0059010.133150000000.0053100.002960.043208000.00189”的值字段
有谁之前经历过这个吗?
在对原始语句中涉及的行进行仔细分析后,我看不出任何会导致它的原因,因为它们看起来完全一样。相同标识符的偶数值已求和。
我的代码如下,任何人都可以发现任何可能导致它的东西吗?就像我说的,它距离 520 万的原始语句只有 7 行,所以准确性非常好,只是没有准确,我知道它会困扰我。
mongoimport -d test -c sales --type csv --file sales_rawdata.csv --headerline
var mapFunction1 = function() {
emit({video_id: this.video_id, isrc: this.isrc, country: this.country}, this.amount_payable);
};
var reduceFunction1 = function(keyIsrc, valuesAmountPayable) {
return Array.sum(valuesAmountPayable);
};
db.sales.mapReduce(
mapFunction1,
reduceFunction1,
{ out: "sales_total_by_country_and_isrc" }
)
db.sales_total_by_country_and_isrc.find()
mongoexport --csv -d test -c sales_total_by_country_and_isrc -q '{value: {$ne: 0}}' -f "_id.video_id","_id.isrc","_id.country","value" -o sales_total_by_country_and_isrc.csv