我在数据湖有一些数据:
Person | Date | Time | Number of Friends |
Bob | 02/01 | unix_ts1 | 5 |
Kate | 02/01 | unix_ts2 | 2 |
Jill | 02/01 | unix_ts3 | 3 |
Bob | 02/01 | unix_ts3 | 7 |
Kate | 02/02 | unix_ts4 | 10 |
Jill | 01/29 | unix_ts0 | 1 |
我想制作一张这样的table:
Person | Date | Time | Number of Friends DELTA | Found Diff Between
Bob | 02/01 | unix_ts1 | NaN | (5, NaN)
Kate | 02/01 | unix_ts2 | NaN | (2, NaN)
Jill | 02/01 | unix_ts3 | 2 | (3, 1)
Bob | 02/01 | unix_ts3 | 2 | (7, 5)
Kate | 02/02 | unix_ts4 | 8 | (10, 2)
所以,我有一个表,其中每一行都由一个人的名字和记录数据的时间来标识。我想要一个查询,它将去寻找“bob”的示例,找到连续时间戳的delta,然后给出delta,以及它找到的两个值之间的差异。我希望每个人都这样。
当只有一个值时,我发现了一个方法,使用lag()命令,但它不能按人匹配。如果我下载了数据,我也知道如何在Pandas身上做到这一点,但我想知道是否有一种方法可以在Hive里做到这一点。
有办法吗?谢谢您!
1条答案
按热度按时间lp0sw83n1#
使用
lag
窗口功能。