搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
博客
群组
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云
»
专题
›
交流区
›
技术交流
›
NoSQL型数据库
›
求大神看看使用mongo进行mapreduce的reduce数据错误的原 ...
0
6
0
分享
求大神看看使用mongo进行mapreduce的reduce数据错误的原因
booleee
发表于 2013-10-17 21:36:45
[显示全部楼层]
阅读模式
关闭右栏
6
4602
一个最基本的reduce过程,产生的结果和预期完全不一样,在数据相对比较多的时候就不能产生预期结果,是为什么呢?
实际例子:
user结构很简单,就一个uid字段,用于被抛出
function(){
emit({uid:this.uid},this);
}
redunceFun(key, values) {
var r={count:0};
for(var i=1;iMapReduce
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(6)人评论
电梯直达
正序浏览
booleee
发表于 2013-10-17 21:37:27
这个是实际进行mapreduce的抛出emit和reduce返回值次数。
回复
使用道具
举报
显身卡
u011235983
发表于 2013-10-17 21:38:10
试试这个:
mapFunc=function (){ emit({uid:this.uid},1); }
reduceFunc=function (key, values) { return Array.sum(values)}
db.user.mapReduce(mapFunc, reduceFunc, {out:"userResult"} )
回复
使用道具
举报
显身卡
booleee
发表于 2013-10-17 21:38:56
执行的结果有变化,但是也是不对的。
回复
使用道具
举报
显身卡
booleee
发表于 2013-10-17 21:39:48
在http://stackoverflow.com/questions/17871997/reduce-function-on-map-reduce-showing-incorrect-results-why/17877778#17877778找到原因了。原来是每次reduce的时候需要拿到上一次的结果,之前的的代码都丢掉了
回复
使用道具
举报
显身卡
u011235983
发表于 2013-10-17 21:40:31
结果里的input是2000条纪录,平均没有uid就是400条,看结果应该是对的呀?
能再确认一下你运行的那个collection总共有多少条纪录呢?
引用 3 楼 booleee 的回复:
执行的结果有变化,但是也是不对的。
回复
使用道具
举报
显身卡
pandoraliu
发表于 2013-10-17 21:41:07
既然叫做uid,就不要有重复的键值。逻辑上不清楚,到最后数据库会受累的。
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
booleee
新手上路
关注
主题
帖子
粉丝
TA的主题
求大神看看使用mongo进行mapreduce的reduce数据错误的原因
2013-10-17
24小时热文
哈佛通识教育红皮书 (北大高等教育文库·大
代码精进之路:从码农到工匠
为什么面试难!一文帮我们看透本质,拿捏of
程序员薪资排名,AI位居榜首,平均年薪277
Django实战:Python Web典型模块与项目开发
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈