我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MongoDB-Map&Reduce

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MongoDB-Map&Reduce

模拟大数据搜索场景--‐何旭东

请使用脚本插入本次课程中的Map&Reduce举例的学生表到1000w条文档。字段

保持不变。

使用Map&Reduce 计算出10<age<20 的每班学生的个数。

请提交Map&Reduce 程序,已经对应的计算结果。

>

db.users.count();

10000000

>

db.users.find();

{

"_id"

:

ObjectId("55ca9ae785b177a46da9494f"),

"classid"

:

1,

"age"

:

37,

"name"

:

"name0"

}

{

"_id"

:

ObjectId("55ca9ae785b177a46da94950"),

"classid"

:

1,

"age"

:

12,

"name"

:

"name1"

}

{

"_id"

:

ObjectId("55ca9ae785b177a46da94951"),

"classid"

:

1,

"age"

:

31,

"name"

:

"name2"

}

{

"_id"

:

ObjectId("55ca9ae785b177a46da94952"),

"classid"

:

2,

"age"

:

27,

"name"

:

"name3"

}

脚本创建模拟数据:

for (var i=1;

i<10000000;i++){ db.users.save({classid:Math.ceil(Math.random()*(2)),age:Math.cei

l(Math.random()*(38-8)+8),name:"name"+i}) };

Map 函数 Map 函数必须调用emit(key,value)返回键值对。使用this 返回当前待

处理的文档。

> mapf = function(){emit(this.classid, 1)}

function (){emit(this.classid, 1)}

Reduce 函数

Reduce 函数接收的参数类似Group 效果,已经按照健聚合过一次

将Map 返回的键值序列组合成{key, [value1,value2,value3,....,valuen]}传递给

Reduce,Reduce 函数对values 统计

> reducef=function (key, values) {

... var count = 0;

... values.forEach(function (v) {count += v;}); return count;

... }

function (key, values) {

var count = 0;

values.forEach(function (v) {count += v;}); return count;

}

Options 更多的控制细节

> res = db.runCommand({ mapreduce:"users", map:mapf, reduce:reducef,

out:"users_res",

finalize:ff,

query:{age:{$lt:10}}

...

});

{

"result"

:

"users_res",

"timeMillis"

:

6251,

"counts"

:

{

"input"

:

333716,

"emit"

:

333716,

"reduce"

:

6676,

"output"

:

2

},

"ok"

:

1

}

>

结果:

>

db.users_res.find();

{

"_id"

:

1,

"value"

:

{

"classid"

:

1,

"count"

:

167142

}

}

{

"_id"

:

2,

"value"

:

{

"classid"

:

2,

"count"

:

166574

}

}

1 班小于10 岁的有167142 人。2 班小于10 岁的有166574 人。

继续统计小于20 岁以下,每个班学生的个数:

> res = db.runCommand({ mapreduce:"users", map:mapf, reduce:reducef,

out:"users_2res", finalize:ff, query:{age:{$lt:20}}

... ... });

{

"result" : "users_2res",

"timeMillis" : 23247,

"counts" : {

"input" : 3666243,

"emit" : 3666243,

"reduce" : 73326,

"output" : 2

},

"ok" : 1

}

> db.users_2res.find();

{ "_id" : 1, "value" : { "classid" : 1, "count" : 1832306 } }

{ "_id" : 2, "value" : { "classid" : 2, "count" : 1833937 } }

1 班小于20 岁的有1832306 人。2 班小于20 岁的有1833937 人。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MongoDB-Map&Reduce

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python-map、reduce、fi

Python内置map、reduce、filter、sorted函数。map函数map函数接受两个参数,一个是函数,一个是Iterable(迭代对象),map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。有一个
2023-01-31

python里的map和reduce

有不少文章介绍python的map与reduce,这到底是什么样的东西呢?先看看google的paper里对mapreduce的解释http://static.googleusercontent.com/media/research.goo
2023-01-31

python内置函数map/reduce

python有几个内置的函数很有意思:map/filter/reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是python列表方法的三架马车。filter() 函数:filter
2023-01-31

JS中reduce和map怎么写

这篇文章主要介绍了JS中reduce和map怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JS中reduce和map怎么写文章都会有所收获,下面我们一起来看看吧。reduce1、可以使用 reduce 方
2023-07-05

详解Mongodb 多文档聚合操作处理方法(Map-reduce 函数)

目录聚合Map-reduce 函数示例:按客户统计示例:按日期统计聚合聚合操作处理多个文档并返回计算结果。您可以使用聚合操作来:将多个文档中的值分组在一起。对分组数据执行操作以返回单个结果。分析数据随时间的变化。要执行聚合操作,您可以
2023-08-07

Python内置函数Map、Reduce和Filter的作用

本篇内容主要讲解“Python内置函数Map、Reduce和Filter的作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python内置函数Map、Reduce和Filter的作用”吧!1.
2023-06-02

python中filter,map,reduce的作用是什么

这篇文章主要介绍“python中filter,map,reduce的作用是什么”,在日常操作中,相信很多人在python中filter,map,reduce的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
2023-07-02

Javascript中怎么使用ES6的map和reduce

本文小编为大家详细介绍“Javascript中怎么使用ES6的map和reduce”,内容详细,步骤清晰,细节处理妥当,希望这篇“Javascript中怎么使用ES6的map和reduce”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
2023-06-29

JavaScript中如何使用 .map()、.reduce() 和 .filter()方法

这篇文章主要为大家展示了“JavaScript中如何使用 .map()、.reduce() 和 .filter()方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中如何使用
2023-06-02

分享JS的一些优雅写法(reduce/map)

本篇文章给大家带来了关于JS的相关知识,其中主要给大家介绍了JS的一些优雅写法,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。
2023-05-14

Hive中的Map-sideJoin和Reduce-sideJoin有何区别

Hive中的Map-side Join和Reduce-side Join是两种不同的数据连接方式。Map-side Join是指在Map阶段进行数据连接操作,即在数据被分发到各个节点执行Map任务时就将需要连接的数据集加载到内存中,以便在
Hive中的Map-sideJoin和Reduce-sideJoin有何区别
2024-03-11

编程热搜

目录