Map-reduce比较最新和最早的值

时间:2013-11-12 17:20:47

标签: mongodb mapreduce

我的架构类似于:

{
  id: 1,
  pid: 1,
  batch: 1,
  count: 2,
}

{
  id: 2,
  pid: 1,
  batch: 2,
  count: 4,
}

{
  id: 3,
  pid: 1,
  batch: 3,
  count: 6,
}

我想写一个map-reduce函数来返回最近批次和最早批次的计数之间的增量差异。

根据上面的数据,这将返回如下内容:

pid: 1, diff: 4

有关如何解决此问题的任何想法?我正在使用Mongo,但是如果有一个Java / Hadoop示例可行,我会高兴地接受它。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下算法:

<强>地图

输入:K1 =“文件偏移”,V1 = Jason对象

输出:K2 =“pid:1”,V2 =“count:2”

<强>减少

输入:K2 =“pid:1”,V2列表(“计数:2,计数:4,计数:6”)

输出:K3 =“pid:1”,V3:“(最大值V2减去V2的最小值)”

在模式中假设计数对于给定的批次系列始终是递增的。如果不是,则可以向该值添加“批处理”。

V2 =“批次:1,计数:2”。

V3 =“最大批次数减去最小批次数”