搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
办公|编程助手
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
交流区
›
技术交流
›
NoSQL型数据库
›
求大神看看使用mongo进行mapreduce的reduce数据错误的原 ...
0
6
0
分享
求大神看看使用mongo进行mapreduce的reduce数据错误的原因
booleee
发表于 2013-10-17 21:36:45
[显示全部楼层]
阅读模式
关闭右栏
6
4586
一个最基本的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小时热文
Docker基础与实战
docker容器实战:原理、架构与应用
Docker+容器与容器云(第2版)
kafka面试题精选
Nebula Flink Connector 在实时 ETL 的实践
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈