【问题标题】:Map Reduce for analyzing time seriesMap Reduce 用于分析时间序列
【发布时间】:2012-01-16 09:03:49
【问题描述】:

我是map reduce概念的新手,想知道使用它是否可以解决以下问题。

我们有如下形式的数据日志:

TransID     Date           Operation   DocumentID   User
1           01/01/2010     Open        aaa          Anne
2           01/11/2010     Close       aaa          Anne
3           01/12/2010     Open        bbb          Mary
4           01/12/2010     Close       bbb          Mary

我们希望能够计算不同的时间指标,例如:

  • 全局打开和关闭操作之间的平均时间间隔是多少?或
  • 每个用户平均打开和关闭之间的时间间隔是多少?

有没有一种简单的方法可以通过 map-reduce 实现这一点?我们正在考虑使用 MongoDB 或 Hadoop。

数据量可能很大——数十亿条记录。谢谢!

【问题讨论】:

  • 这个当然可以,我以前做过。

标签: mongodb hadoop mapreduce time-series cluster-computing


【解决方案1】:

这里的诀窍是您需要在映射阶段“扁平化”您的数据,并将其发送到 reducer 进行计算。因此,您的密钥将是 DocumentID(可能是 User,具体取决于您的用例),然后值是时间和操作(如果这样排序更好,则将时间放在首位)。在您的减速器中,上面的行只会导致行能够在键内循环。这是一个非常相似的例子https://allthingshadoop.com/2011/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/

【讨论】:

    猜你喜欢
    • 2012-11-05
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2011-12-26
    • 2013-09-08
    相关资源
    最近更新 更多