[HADOOP] 아파치 하이브 : 문자열을 타임 스탬프로 변환하는 방법?
HADOOP아파치 하이브 : 문자열을 타임 스탬프로 변환하는 방법?
나는 하이브의 타임 스탬프 형식으로 REC_TIME 열의 문자열을 변환하려고합니다.
예 : Sun Jul 31 09:28:20 UTC 2016 => 2016-07-31 09:28:20
SELECT xxx, UNIX_TIMESTAMP(REC_TIME, "E M dd HH:mm:ss z yyyy") FROM wlogs LIMIT 10;
위의 SQL을 실행하면 NULL 값이 반환됩니다.
해결법
-
==============================
1.이 시도 :
이 시도 :
select from_unixtime(unix_timestamp("Sun Jul 31 09:28:20 UTC 2016","EEE MMM dd HH:mm:ss zzz yyyy"));
하이브 클러스터에 UTC 표준 시간대가있는 경우에는 정상적으로 작동합니다. 서버가 중부 표준시에 있다고 가정하면 UTC를 얻으려면 아래처럼해야합니다.
select to_utc_timestamp(from_unixtime(unix_timestamp("Sun Jul 31 09:28:20 UTC 2016","EEE MMM dd HH:mm:ss zzz yyyy")),'CST');
희망이 도움이됩니다.
편집하다 하이브 데이트 함수는 패턴에 JAVA 간단한 날짜 포맷터를 사용합니다. 이 패턴을 참조하십시오.
-
==============================
2.내 컴퓨터가 PDT에서 작동하는지 확인하십시오.
내 컴퓨터가 PDT에서 작동하는지 확인하십시오.
[cloudera@quickstart ~]$ date +%Z PDT
따라서 UTC 시간은 2:28:20 PDT로 변환됩니다. 어쨌든 이것은 요점이 아닙니다. 당신은 몇 시간 동안 HH를 사용하고 있으며, HH를 사용하고 그 달에 적어도 3M이 필요합니다.
0: jdbc:hive2://quickstart:10000/default> select from_unixtime(unix_timestamp("Sun Jul 31 09:28:20 UTC 2016", 'E MMM dd hh:mm:ss z yyyy')) as date; +----------------------+--+ | date | +----------------------+--+ | 2016-07-31 02:28:20 | +----------------------+--+
from https://stackoverflow.com/questions/39782293/apache-hive-how-to-convert-string-to-timestamp by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 중첩 된 하위 디렉토리의 입력이있는 하이브 만들기 테이블 (0) | 2019.07.19 |
---|---|
[HADOOP] hadoop과 hbase의 최신 호환 버전 (0) | 2019.07.19 |
[HADOOP] 클러스터 모드의 Spark를 사용하여 로컬 시스템에 파일 쓰기 (0) | 2019.07.19 |
[HADOOP] Hadoop 3.0에서 CopyMerge를 수행하는 방법은 무엇입니까? (0) | 2019.07.19 |
[HADOOP] SQOOP SQLSERVER "적절한 연결 관리자가 설정되지 않았습니다"드라이버를로드하지 못했습니다. (0) | 2019.07.15 |