mongodb mapreduce执行次数不足的原因-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

mongodb mapreduce执行次数不足的原因

落地花开啦 2016-02-21 16:31:16 2045

大家好,初学nosql, 我想在mongodb(在win7下)中统计一下2000个员工的工资总额 , 类似sql里面的sum()就行, 用的是java的morphia组件,
`String map = "function(){ emit( '1',{'v':this.value}); }";
String reduce = "function(key, values){ var count=0;var total=0;

  for(var i in values){ total+=values[i].v; count++; } return
  {'count':count,'total':total};}";`

执行后,返回的"count"值居然不是2000,而是993,也就是不知道什么原因,只统计了2000个员工中的993个,打印的日志是
`{ "result" : "t_1326770661390" , "timeMillis" : 78 , "timing" :
{ "mapTime" : 62 , "emitLoop" : 78 , "reduceTime" : 15 , "mode" : "mixed" , "total" : 78} ,
"counts" :
{ "input" : 1992 , "emit" : 1992 , "reduce" : 2 , "output" : 1} , "ok" : 1.0}
`
求大神指点。

mapreduce原因 E-MapReduce不足 E-MapReduce执行 mapreduce执行 次数原因
分享到
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:46:06

    这个地方不是因为统计错了,而是因为你写错了,count不能简单的进行+1,因为对于每一个key,你无法确定reduce执行多少次,也没法确定mongodb是怎么执行的,这里最优执行是由mongodb自己决定的。

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题
推荐课程