首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapreduce返回不一致的结果

mapreduce返回不一致的结果
EN

Stack Overflow用户
提问于 2010-08-28 17:43:36
回答 1查看 529关注 0票数 1

我有一个超级简单的地图缩减测试..。但效果不一致。简而言之,我只是在找重复的记录。我有一个收藏有:

GiftIdea - site_id - site_key

site_id + site_key应该是唯一的,但目前并非如此。

代码语言:javascript
复制
var map = function() { 
   print(this.site_key); 
   emit(this.site_id + this.site_key, 1);
};
var reduce = function(key,values) { 
   var sum=0;
   for(var i in values){ 
      print(key + ": " + ++sum); 
   } 
   return sum; 
};

使用此输入数据:

GiftIdea

-site_id: amazon -site_key:2 -site_id: amazon -site_key: 2

-site_id: amazon -site_key: 1

所以我应该得到:

amazon1 => 2 amazon2 => 1

下面是我运行它时会发生的情况

代码语言:javascript
复制
> o = db.gift_ideas.mapReduce(map,reduce)                                                                        
{
    "result" : "tmp.mr.mapreduce_1283015268_136",
    "timeMillis" : 5,
    "counts" : {
        "input" : 3,
        "emit" : 3,
        "output" : 2
    },
    "ok" : 1,
}

好吧,好消息,我发出了3行,输出了2行。但是我得到了:

amazon1 => 1.00000 amazon2 => 1.00000

在我的日志文件中,我有:

周六8月28日13:22:50 personalizr_test.tmp.mr.mapreduce_1283016170_139 conn582 CMD: drop personalizr_test.tmp.mr.mapreduce_1283016170_139_inc 1 2 1

personalizr_test.tmp.mr.mapreduce_1283016170_139_inc的

键: amazon1值:2 Sat Aug 28 13:22:50 conn582在{ 0: 1}上构建新索引,用于8月28 13:22:50 conn582 Buildindex personalizr_test.tmp.mr.mapreduce_1283016170_139_inc idxNo:0 { ns:"personalizr_test.tmp.mr.mapreduce_1283016170_139_inc",Key:{ 0: 1 },名称:"0_1“} Sat 8月28日13:22:50 conn582完成2条记录0秒8月28日13:22:50 conn582为0_1 8月28日13:22:50建立新索引{ _id: 1}为0_1 8月28日13:22:50 conn582 Buildindex personalizr_test.tmp.mr.mapreduce_1283016170_139 idxNo:0 { name:"id",ns:"personalizr_test.tmp.mr.mapreduce_1283016170_139",密钥:{ _id: 1} Sat 8月28日13:22:50 conn582完成0条记录0秒键: amazon1值:1键: amazon2值:1星期六8月28日13:22:50 conn582 CMD: drop 8月28日13:22:50 conn582 CMD: conn582 CMD:按conn582 CMD 28 :22:50 conn582结束连接127.0.0.1:56135

1,2,1表示map函数工作正常。这是正确的项目,按正确的顺序,但减少功能看起来奇怪。我为amazon1调用了两次reduce,第二次调用的值是不正确的。另一件事是,在第一次调用之后,mongo正在创建一个索引。我猜它是在等待第一个数据,以确定数据格式是什么,这样它就可以适当地生成索引。但是我不明白为什么我要接到呼叫: Key: amazon1值:1调用

有什么建议吗?

几乎没有其他有趣的小道消息:Mongoo1.6.1蒙古人2.0.0.beta16bson 1.0.4 bson_ext 1.0.4

有一件事很奇怪,那就是tt工作在一个不同的数据库上,里面有真实的数据!

下面是其中一个记录在填充的数据库中的样子:

代码语言:javascript
复制
{ "_id" : ObjectId("4c69b7164914e54d9b007c34"), "avg_score" : null, "category_ids" : [ ], "created_at" : "Thu Aug 19 2010 05:57:25 GMT-0400 (EDT)", "desc" : null, "enabled" : null, "idea_ratings" : [ ], "images" : [
    {
        "url" : "http://ecx.images-amazon.com/images/I/515cLXdLUNL._SL75_.jpg",
        "_id" : ObjectId("4c69b7164914e54d9b007c35"),
        "height" : 61,
        "width" : 75
    }
], "num_ratings" : null, "owner_id" : null, "price" : -1, "rating_stats" : { "_id" : ObjectId("4c7746877719ad0712000dc8"), "total" : -1, "count" : 1, "average" : -1, "sum_of_weights" : 1 }, "ratings" : null, "response_groups" : [ ], "sales_rank" : 40751, "site_id" : "amazon", "site_key" : "B00001OPJE", "title" : "SNK NEOGEO Pocket Color Console in Platinum Silver", "updated_at" : "Fri Aug 27 2010 21:34:40 GMT-0400 (EDT)", "url" : "http://www.amazon.com/NEOGEO-Pocket-Color-Console-Platinum-Silver/dp/B00001OPJE?SubscriptionId=1VHSF1NEXNWHR2A8BA82&tag=gifter-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B00001OPJE" }

这是我的一个样本

代码语言:javascript
复制
{ "_id" : ObjectId("4c7948667719ad410f000005"), "created_at" : "Sat Aug 28 2010 13:33:26 GMT-0400 (EDT)", "enabled" : true, "rating_stats" : { "_id" : ObjectId("4c7948667719ad410f00000d"), "total" : 2, "count" : 2, "average" : 1, "sum_of_weights" : 2 }, "sales_rank" : 10, "site_id" : "amazon", "site_key" : "1", "title" : "title1", "updated_at" : "Sat Aug 28 2010 13:33:26 GMT-0400 (EDT)", "url" : "url1" }

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-28 18:00:26

好吧,多亏了艾略特·霍洛维茨。他告诉我我的缩减功能不对。还原可以重新运行,因此您需要执行以下操作:

变量减少=函数(键,值){ var sum=0;for(var i in += value){ sum +=value;print(key + ":“+ sum);}返回sum;};

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3591774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档