hive 配置单元SQL -时间间隔为5分钟

vsikbqxv  于 2022-11-05  发布在  Hive
关注(0)|答案(1)|浏览(248)

我的数据太大,无法分析,因为它是每秒收集左右。为了减少数据,我想分组为5分钟的间隔。我尝试转换成unix时间戳,并恢复回来,但没有工作。
我试过这种方法

SELECT operation, 
value, 
from_unixtime(unix_timestamp(update_time)/300) as interval_5
FORM storage

原始数据或输出

operation   value   update_time
---------- ------- --------------------
sensor       190    2021-03-18 22:37:04
sensor       191    2021-03-18 22:37:05
sensor       190    2021-03-18 22:37:06
sensor       192    2021-03-18 22:37:07
sensor       193    2021-03-18 22:37:08

所需输出

operation   value   update_time
---------- ------- --------------------
sensor       190    2021-03-18 22:37:04
sensor       195    2021-03-18 22:42:04
sensor       197    2021-03-18 22:47:04
sensor       194    2021-03-18 22:52:04
sensor       190    2021-03-18 22:57:04
omhiaaxx

omhiaaxx1#

我不知道Hive,但要确保除法是一个整数除法,截断分数,然后乘回来,在这个过程中丢失了最后的300秒:

from_unixtime(unix_timestamp(update_time)/300*300) as interval_5

如果Hive Sql不截断(整数除以300),则必须使用FLOOR之类的函数来进行截断。

相关问题