文档章节

mongodb的mapreduce学习

y
 ycxcg
发布于 2015/06/16 15:40
字数 394
阅读 43
收藏 0

精选30+云产品,助力企业轻松上云!>>>

1.reduce中的非线性  reduce会抵带

     MapReduce中emit后的Bosn的数据格式,一个大于100的Array,会被拆分存储,变成了非线性的链表结构。在reduce中使用 educed.score += val.score 语句可以智能地找到所有子结点的score并相加!

2.Map和reduce 特别关系

如果map中经过emit分组 只有一条数据  则不进入reduce中处理, 可以到finlize中处理

3.参数

db.runCommand(
 { mapreduce : 字符串,集合名,
   map : 函数,m函数
   reduce : 函数,r函数
   [, query : 文档,发往map函数前先给过渡文档]
   [, sort : 文档,发往map函数前先给文档排序]
   [, limit : 整数,发往map函数的文档数量上限]
   [, out : 字符串,统计结果保存的集合]
   [, keeptemp: 布尔值,链接关闭时临时结果集合是否保存]
   [, finalize : 函数,将reduce的结果送给这个函数,做最后的处理]
   [, scope : 文档,js代码中要用到的变量]
   [, jsMode : 布尔值,是否减少执行过程中BSON和JS的转换,默认true] //注:false时 BSON-->JS-->map-->BSON-->JS-->reduce-->BSON,可处理非常大的mapreduce,<br>                                    //true时BSON-->js-->map-->reduce-->BSON
   [, verbose : 布尔值,是否产生更加详细的服务器日志,默认true]
 }
);


out 参数

  • { replace : "collection name" } – 把老数据删除掉,重新加入数据

  • { merge : "collection name" } – 将新老数据进行合并,新的替换旧的,没有的添加进去

  • { reduce : "collection name" } – 存在老数据时,在原来基础上加新数据(

query 参数:

     query : {"event_time": { "$gte" : today_start, "$lte":today_end}, "$or" : [{ "_id.date" : yesterday }, { "_id.date" : today }]},


y
粉丝 0
博文 1
码字总数 394
作品 0
深圳
私信 提问
加载中
请先登录后再评论。
MapReduce初探之一~~基于Mongodb实现标签统计

MapReduce 是一种编程模型,是 Google 提出的一种软件架构,主要应用于分布式系统上。Google对其原始的定义是“ MapReduce is a framework for computing certain kinds of distributable pr...

zhiweiofli
2013/03/06
2.3K
5
MongoDB中MapReduce介绍与使用

一、简介 在用MongoDB查询返回的数据量很大的情况下,做一些比较复杂的统计和聚合操作做花费的时间很长的时候,可以用MongoDB中的MapReduce进行实现 MapReduce是个非常灵活和强大的数据聚合工...

踏雪无痕SS
2017/11/29
0
0
MongoDB 的 MapReduce 大数据统计统计挖掘

【mongoDB高级篇②】大数据聚集运算之mapReduce(映射化简) MongoDB虽然不像我们常用的mysql,sqlserver,oracle等关系型数据库有group by函数那样方便分组,但是MongoDB要实现分组也有3个办法...

mickelfeng
2017/12/07
0
0
MongoDB聚合查询

ps:以前都在iteye写博文,现在工作换了,转战前端,基本告别了java和python,看这边氛围还不错,就把那里的博客迁移过来了~~~ 出于对性能的要求,公司希望把Mysql的数据迁移到MongoDB上,于...

oj8kay
2016/02/27
1K
0
MongoDB的MapReduce用法及php示例代码

MongoDB虽然不像我们常用的mysql,sqlserver,oracle等关系型数据库有group by函数那样方便分组,但是MongoDB要实现分组也有3个办法: * Mongodb三种分组方式: * 1、group(先筛选再分组,不...

slimboy123
2013/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java知识点--卫语句

在《阿里巴巴Java开发手册》中强制规定:超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句即代码逻辑先考虑失败、异常、中断、退出等直接返回的情...

HLee
15分钟前
9
0
实施与扩展:何时使用? 有什么不同? - Implements vs extends: When to use? What's the difference?

问题: 请用一种易于理解的语言或一些文章的链接进行解释。 解决方案: 参考一: https://stackoom.com/question/jTkh/实施与扩展-何时使用-有什么不同 参考二: https://oldbug.net/q/jTkh/...

技术盛宴
16分钟前
3
0
剑指offer之队列中的最大值(C++/Java双重实现)

1.题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_value 需要返回...

osc_jvzgahav
18分钟前
5
0
JAVA-过滤器和拦截器1

1、过滤器 (Filter) 过滤器的配置比较简单,直接实现 Filter 接口即可,也可以通过 @WebFilter 注解实现对特定 URL 拦截,看到 Filter 接口中定义了三个方法。 init() :该方法在容器启动初始...

osc_hinb5m98
19分钟前
0
0
模拟红包算法(基于BigDecimal、DecimalFormat、Random类)

基于BigDecimal、DecimalFormat、Random实现模拟红包算法 RedPacket 类 import java.math.BigDecimal;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.Rand......

osc_ml6lx2h4
21分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部