2016-06-17 42 views
0

我有一個表,看起來像:如何從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]是一個數組其值對應於1451674800和1451692800之間的時間(PST)(UNIX時間)。

我的想法是我需要使用Hive的時間戳功能,但我對Hive非常不熟悉,尤其是對於時間戳功能,我甚至不知道從哪裏開始。

回答

1

首先創建將UNIX時間轉換爲序數時間的函數。可以從here

然後計算DATEDIFF(HH,START_TIME,END_TIME)。從DATEPART(dd,start_time)開始添加這個小時數並連接它們。

+0

DATEDIFF正是我所需要的,謝謝! [FROM_UNIXTIME](http://www.folkstalk.com/2011/11/date-functions-in-hive.html)是否完成UNIX - >序號轉換? –

+0

Ah,蜂巢中的DATEDIFF只適用於日期之間的差異,而不是時間。 –

相關問題