1

我有一个类似于:

{
  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 示例,我会很乐意接受它。

4

1 回答 1

0

您可以尝试以下算法:

地图

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

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

减少

输入:K2 = "pid: 1", V2 列表 ("count : 2, count : 4, count : 6")

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

在模式中假定计数对于给定的批次系列总是递增的。如果不是,那么您可以将“批次”添加到该值中。

V2="批次:1,计数:2"。

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

于 2013-11-13T07:23:58.243 回答