博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB聚合运算之mapReduce函数的使用(11)
阅读量:7103 次
发布时间:2019-06-28

本文共 833 字,大约阅读时间需要 2 分钟。

mapReduce 随着"大数据"概念而流行.

其实mapReduce的概念非常简单,

从功能上说,相当于RDBMS的 group 操作

 

 

 

mapReduce的真正强项在哪?

答:在于分布式,当数据非常大时,像google,有N多数据中心,

数据都不在地球的一端,用group力所不及.

 

group既然不支持分布式,单台服务器的运算能力必然是有限的.

 

而mapRecuce支持分布式,支持大量的服务器同时工作,

用蛮力来统计.

 

mapRecuce的工作过程:

① map:

          这个称为映射函数,里面会调用emit(key,value),集合会按照你指定的key进行映射分组。

 ② reduce:

         这个称为简化函数,会对map分组后的数据进行分组简化,注意:在reduce(key,value)中的key就是emit中的key,value为emit分组后的emit(value)的集合,把数组(同一组)的数据,进行运算.

 

 

 

用mapReduce计算每个栏目的库存总量

 

 

map函数

var map = function() {

    emit(this.cat_id,this.goods_number);

    }

 

 

var reduce = function(cat_id,numbers) {

    return Array.sum(numbers);

}

 

 

db.goods.mapReduce(map,reduce,{out:'res'});

结果保存到“res”中

db.res.find()

 

 

#用mapReduce计算每个栏目下商品的平均价格

 

var map = function() {

    emit(this.cat_id,this.shop_price);

    }

 

 

var reduce = function(cat_id,values) {

    return Array.avg(values);

}

 

 

db.goods.mapReduce(map,reduce,{out:'res'});

 

转载地址:http://vgdhl.baihongyu.com/

你可能感兴趣的文章
北京平面设计艺术展示
查看>>
牛人用 shell 写的 俄罗斯方块游戏
查看>>
oh-my-zsh
查看>>
浅谈企业信息化建设
查看>>
详解linux运维工程师入门级必备技能
查看>>
window 下 安装 apache(nginx)+mysql+php架构
查看>>
DNS原理概念详解
查看>>
对lucene 的总结
查看>>
使用xmake编译swift代码
查看>>
我的友情链接
查看>>
大数据处理相关的好博文
查看>>
essential C++
查看>>
Git 服务器搭建与客户端安装
查看>>
使用 Java8 Optional 的正确姿势
查看>>
[C++ 学习笔记 1] delete 和 delete [] 的本质区别
查看>>
quartz 2.0.2 hello
查看>>
关于编程工具链
查看>>
Android新的ARM开发工具包 解决平台混乱问题
查看>>
TensorFlow人工智能引擎入门教程之二 CNN卷积神经网络的基本定义理解。
查看>>
Linux系统新手学习的11点建议
查看>>