如何在Hadoop中维护变量?

时间:2014-05-02 14:38:54

标签: hadoop

我的记录很少说

session1    click1    time1 

session1    click2    time2

session1    click3    time3

session2    click1    time1

session2    click2    time2

session2    click3    time3

现在我需要计算会话中每次点击的访问时间

session1    click1    time1    (time2-time1)

session1    click2    time2    (time3-time2)

session1    click3    time3     0

session2    click1    time1    (time2-time1)

session2    click2    time2    (time3-time2)

session2    click3    time3    0

我可以使用hadoop的哪个组件来获得上述功能?

1 个答案:

答案 0 :(得分:3)

一种可能的解决方案是使用Map Reduce。

地图可以发出密钥,值为SessionID, Click-Time对。在reducer端,按时间顺序对Click-Time对进行排序。因此,您可以轻松获得第一次,第二次和第三次点击。休息很简单,只需从reducer中为每对发出Key, Click, Time, Time Difference(每个由分隔符选项卡分隔)。 reducer的值可以是NullWritable