是否可以对存储在 Hive 中的数据执行滞后、领先操作?
任何指针将不胜感激!
您可以使用 LAG 函数获取先前的时间戳示例如下:
NVL( LAG (currentTimestamp, 1) OVER (PARTITION BY [partinioned columns] ORDER BY currentTimestamp ASC) , 0 ) AS previousTimestamp;
与 LEAD 一样,这里默认为一行 NVL( LEAD (currentTimestamp, 1) OVER (PARTITION BY [partinioned columns] ORDER BY currentTimestamp ASC) , 0 ) AS NextTimestamp;
现在,您需要使用SQLWindowing扩展来执行滞后、超前和其他窗口功能。
将来,这将被移到 Hive 中(请参阅HIVE-896),并且语法会略有变化。