如何从Hive中的一对时间戳生成一个小时数组?

时间:2016-06-17 19:43:13

标签: sql hive

我有一张表格如下:

ID   start_time     end_time     username
1    1451674800     1451692800   blah

我想要一张看起来像的表:

ID   username   hours
1    blah       [11, 12, 13, 14, 15, 16]

其中[11,12,13,14,15,16]是一个数组,其值对应于小时(PST),介于1451674800和1451692800之间(UNIX时间)。

我的想法是我需要使用Hive的时间戳功能,但我对Hive非常不熟悉,尤其是时间戳功能,我甚至不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

首先创建将UNIX时间转换为序数时间的函数。可以从here

获取

然后计算DATEDIFF(hh,start_time,end_time)。从DATEPART(dd,start_time)开始添加这个小时数并连接它们。