Map Reduce用于分析时间序列



我是映射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。

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

这里的技巧是,您需要在映射阶段"压平"数据,并将其发送到reducer进行计算。因此,您的键将是DocumentID(根据您的用例,可能还有User),然后值是时间和操作(如果这样排序更好,请将时间放在第一位)。在您的reducer中,上面的行只会导致行能够在键内循环。这是一个非常相似的例子https://allthingshadoop.com/2011/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/

相关内容

  • 没有找到相关文章

最新更新