目录
- 一、MapReduce的概述
- 二、MapReduce的阶段
- 三、MapReduce的基本语法
- 四、MapReduce示例
- 4.1、 数据准备
- 4.2、 MapReduce示例
一、MapReduce的概述
- MapReduce操作将大量的数据处理工作拆分成多个线程并行处理,然后将结果合并在一起。MongoDB提供的Map-Reduce非常灵活,对于大规模数据分析也相当实用。
二、MapReduce的阶段
- MapReduce具有两个阶段:
(1)、将具有相同Key的文档数据整合在一起的map阶段;
(2)、组合map操作的结果进行统计输出的reduce阶段。
三、MapReduce的基本语法
-
MapReduce语法格式
db.collection.mapReduce( function() {emit(key,value);}, //map 函数 function(key,values) {return reduceFunction}, //reduce 函数 { out: , query: , sort: , limit: , finalize: , scope: , jsMode: , verbose: , bypassDocumentValidation: } ) -
MapReduce语法解释
函数 解释 map 将数据拆分成键值对,交给reduce函数 reduce 根据键将值做统计运算 out 可选,将结果汇入指定表 quey 可选筛选数据的条件,筛选的数据送入map sort 排序完后,送入map limit 限制送入map的文档数 finalize 可选,修改reduce的结果后进行输出 scope 可选,指定map、reduce、finalize的全局变量 jsMode 可选,默认false。在mapreduce过程中是否将数 据转换成bson格式。 verbose 可选,是否在结果中显示时间,默认false bypassDocmentValidation 可选,是否略过数据校验 -
MapReduce图解
四、MapReduce示例
4.1、 数据准备
-
准备数据集,执行脚本
var tags = ["nosql","mongodb","document","developer","popular"]; var types = ["technology","sociality","travel","novel","literature"]; var books=[]; for(var i=0;i db.books_favCount.find()
