比较来自世界各地的卖家的域名和 IT 服务价格

有人可以解释一下 map-reduce 在 C#?

有谁可以解释切割地图的概念,特别是在蒙特加?

我也使用 C#, 所以这个领域的任何细节也很有用。
已邀请:

卫东

赞同来自:

一种理解的方式 Map-Reduce, out C# 和 LINQ, 是想想他
SelectMany//

, 其次是
GroupBy//

, 其次是操作
Aggregate//

.

在 A
SelectMany//

您投影序列,但每个元素都可以成为几个项目。 这相当于使用多个运算符。
emit

在你的手术中

map

. 手术 map 也可能不打电话 emit, 似乎有一个句子
Where//

在您的操作中
SelectMany//

.

在 A
GroupBy//

收集具有相同密钥的元素 Map-Reduce 使用您从操作中分配的键值

map

.

在Cha.
Aggregate//

或者

reduce

您需要与每个键组关联的集合,并以某种方式组合它们以获得每个键的结果。 通常这种组合只是增加一个值 '1' 每个钥匙从卡的步骤中,但有时更困难。

一个重要的警告 map-reduce MongoDB 在于操作的事实 reduce 必须接收并输出相同的数据类型,因为它可以重复应用于部分分组数据集。 如果传输值阵列,则不仅仅是拍摄它的长度,因为它可以是早期减少操作的部分结果。

卫东

赞同来自:

http://cookbook.mongodb.org/
, 在哪里可以开始使用 Map Reduce 在蒙古。 食谱中有几个例子,我会专注于
http://cookbook.mongodb.org/patterns/count_tags/
http://cookbook.mongodb.org/pa ... duce/
.

我想考虑在上下文中切割地图 "data warehousing jobs" 或者 "rollups". 您主要采用详细数据和 "rolling up" 减少这些数据的版本。

在 SQL 你通常会这样做
sum//

,
avg//


group by

. 在 MongoDB 你会用一张卡 Reduce. 地图的主要先决条件是您有两个功能。

第一个功能 /map/ - 它基本上是一个巨大的循环
for

, 这正在努力使用您的数据和 "emits" 定义

钥匙



价值

. 第二个功能 /reduce/ - 这是所有空数据的巨大周期。 在

卡特特写的

"hey this is the data you want to summarize"

, 和门票 -

"hey this array of values reduces to this single value"

输出 map-reduce 可以以多种形式呈现 /通常这个平面文件/. 在 MongoDB 输出实际上代表了一个新的集合。

C# 特征

在 MongoDB 所有卡片切割都在发动机内进行 javascript. 因此,两种功能 map & reduce 写在 javascript. 不同的驱动程序将允许您构建 javascript 并给球队,但这不是我通常这样做的方式。

首选分配方法 Map Reduce 是汇编 JS 到文件然后
mongo map_reduce.js

. 通常,您将在服务器上的某个位置作为任务进行 cron 或计划任务。

为什么?

出色地, map 减少不是 "real-time", 特别是一组大量数据。 它真的设计用于批处理模式。 你不要给我错了

你可以

将其推出代码,但通常,您不希望用户启动任务 map reduce. 相反,您希望将这些任务计划定期,并且您希望用户请求结果 :/

江南孤鹜

赞同来自:

Map Reduce - 这是在有舞台时处理数据的方法/标识要处理的所有数据的卡功能并处理其字符串字符串。

然后你有一个减少的一步/例如,可以运行多次的函数,例如,每个服务器在群集中,然后在客户端中一次返回最终结果。

这是一篇文章 Wiki, 更详细地描述它:

http://en.wikipedia.org/wiki/MapReduce
但文件为 MongoDB 为了 Mapreduce

http://www.mongodb.org/display/DOCS/MapReduce
简单示例:查找列表中最长的字符串。

步 map 通过计算每行的长度来循环通过列表,步骤 reduce 将循环地整理结果 map 而对于每行保存最长。

当然,这可以更复杂,但在这方面和本质上。

要回复问题请先登录注册