如何从Hive中的组中的当前行中减去上一行?

时间:2014-01-06 17:19:39

标签: sql hadoop hive

我有一个充满服务器请求的表,如下所示:

User ID|Timestamp
010101|01-01-14 12:00:00 AM
010101|01-01-14 12:00:10 AM
010101|01-01-14 12:00:30 AM
020101|01-01-14 12:00:00 AM
020101|01-01-14 12:01:00 AM
020101|01-01-14 12:01:20 AM

我想找到请求之间的延迟。结果表看起来像这样(假设有一个中间步骤将时间戳转换为Unix格式):

User ID|Seconds from last request
010101|0
010101|10  --12:00:10 - 12:00:00
010101|20  --12:00:30 - 12:00:10
020101|0
020101|60  --12:01:00 - 12:00:00 
020101|20  --12:01:20 - 12:01:00

有没有办法在Hive中执行此操作?

1 个答案:

答案 0 :(得分:1)

一种解决方案是更新到最新版本的Hive和use the LAG function。请参阅此JIRA ticket