2014-10-14 1 views
-1

내가 하이브 0.12를 사용하고,하이브 : 차이 시간을 어떻게 계산합니까?

데이터 : CUSTOMER_NAME의 발 시간 cust1 1 2014년 5월 19일 5시 12분 43초 cust1 2 2014년 5월 19일 5시 12분 50초 cust1 3 2014-05 -19 05:13:27 cust1 4 2014-05-19 05:14:14 cust2 1 2014-05-19 05:16:27 cust2 2 2014-05-19 05:17:01 cust2 3 2014 -05-19 05:17:05

각 고객의 시간 차이를 val = 1에서 val = n으로 변경하고 싶습니다. 예상 출력 :

cust1 0시 1분 31초 cust2 0시 0분 39초 또한

날짜는 고객을 위해 다음날로 변경 될 수 있습니다. 예 cust3 1 2014년 5월 19일 23시 59분 0초 cust3 1 2014년 5월 20일 0시 2분 25초

예상 출력 : cust3 0시 2분 26초

이 먼저 question.Can UDF없이 끝내야합니까 ?? 두 번째 질문입니다. 없다면? 그것을 UDF를 사용하여 어떻게 하는가 ??

+0

은 서식을 지정해야합니다. – Alen

+0

입력 및 출력 형식을 올바르게 지정하십시오. 문제를 이해하기가 매우 어렵습니다. – Amar

답변

0

나는이 답변을하기 전에 (나는 당신의 필요에 따라 이것이 틀렸다면 나에게 맞다.) 먼저, 타임 스탬프가 정렬 된 값의 순서 즉, cust1에 대해 값 1의 타임 스탬프가 가치 2의 타임 스탬프 등등.

둘째, 출력은 초 단위로 표시됩니다. 이 기능 위에 원하는 기능으로 변환하십시오. UNIX_TIMESTAMP (분 (TS)) temp_txns 군으로부터 BY -

선택 CUST, UNIX_TIMESTAMP (최대 (TS))

cust(string),val(string),ts(timestamp) 
cust1,1,2014-05-19 05:12:43 
cust1,2,2014-05-19 05:12:50 
cust1,3,2014-05-19 05:13:27 
cust1,4,2014-05-19 05:14:14 
cust2,1,2014-05-19 05:16:27 
cust2,2,2014-05-19 05:17:01 
cust2,3,2014-05-19 05:17:05 

쿼리 여기

올바른 형식의 데이터 인 CUST

출력 :

cust1 91 
cust2 38 

희망이 적용됩니다.