我是新手来映射简化概念,并想知道是否可以使用它来解决以下问题。
我们有以下格式的数据记录:
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。
数据量可能很大 - 数十亿条记录。谢谢!
答案 0 :(得分:1)
这里的技巧是你需要在地图阶段“压扁”你的数据并将其发送到reducer进行计算。因此,您的密钥将是DocumentID(也可能是用户,具体取决于您的使用案例),然后值是时间和操作(如果排序更好,那么首先将时间放在第一位)。在您的reducer中,上面的行只会导致行能够在键中循环。以下是非常相似http://allthingshadoop.com/2010/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/
的示例