映射-约简比较最新值和最早值



我有一个类似于以下内容的模式:

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

您可以尝试以下算法:

地图

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

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

减少

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

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

在架构中假定给定批次序列的计数始终是增量的。如果不是,则可以在值中添加"批处理"。

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

V3 ="最大批次计数减去最小批次计数"

相关内容

  • 没有找到相关文章

最新更新