2012-11-29 3 views
1

HDFS에서 에포크를 포함하는 텍스트 파일에서 외부 하이브 테이블을 만들고 싶습니다. 파일이 /user/me/test.txt에 있다고 가정 해 보겠습니다. 다음은 파일 내용이다 :열 형식의 타임 스탬프로 외부 하이브 테이블을 만드는 방법

1354183921 
1354183922 

내가 하이브 0.8.1 설치 및 유형의 타임 스탬프를 사용할 수 있어야 가지고, 그래서 나는 테이블 생성 :

: 나는 테이블을 쿼리 다음

hive> CREATE EXTERNAL TABLE test1 (epoch Timestamp) 
     LOCATION '/user/me'; 

Failed with exception java.io.IOException:java.lang.IllegalArgumentException: 
Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff] 
:

SELECT * FROM test1; 
다음과 같은 예외가 있어요

외부 테이블을 만들 때 아무 것도 놓치지 않았습니까? 하이브 (0.8 이후)는 초 단위로 유닉스 에포크 형식의 타임 스탬프를 지원하기 때문에 혼란 스럽습니다. https://cwiki.apache.org/Hive/languagemanual-types.html#LanguageManualTypes-Timestamps

답변

2

타임 스탬프 문자열은 오류 메시지 및 링크에 지정된 형식 : ss [.fffffffff]. 에포크를 포함하는 데이터를 사용하려면 BIGINT로 정의한 다음 내장 된 UDF 인 from_unixtime()을 사용하여 날짜를 나타내는 문자열로 변환해야합니다. 그런 다음 다른 built-in UDF date functions을 사용하여이 날짜를 조작 할 수 있습니다.

+0

설명해 주셔서 감사합니다! Hive Hive는 미래에이 점을 분명히하기 위해 그들의 문서를 업데이트 할 수 있습니다. – darcyq