복붙노트

[HADOOP] 하이브 타임 스탬프 형식을 검출하지

HADOOP

하이브 타임 스탬프 형식을 검출하지

나는 돼지 스크립트가 그

자바 프로그램 (JAR)은 (YYYY-MM-DD에 mm / DD가 / 년) 2015년 6월 2일 18시 52분에 2015년 6월 2일 18시 52분에서 CSV에 날짜 - 시간 변환 호출

REGISTER /home/cloudera/DateTime.jar;

A = Load '/user/cloudera/Data.csv' using PigStorage(',') as (ac,datetime,amt,trace);

B = FOREACH A GENERATE ac, REPLACE(datetime, '\\/','-') as newdate,REPLACE(amt,'-','') as newamt,trace;

C = FOREACH B GENERATE ac,Converter.DateTime(newdate) as ConvDate,ConvAmt,trace;

Store C into '/user/cloudera/Output/' using PigStorage('\t');

샘플 입력 - 21467245 2015년 6월 2일 18시 52분 -9.59 (518)

샘플 출력 - 21467245 2015년 6월 2일 18시 52분 9.59 (518)

내가 하이브로 출력을로드하고, 다른 분야는 가져 오는 동안 잘 보이지만, 날짜 - 시간 필드는 타임 스탬프로로드의 경우는 null 결과 때 그 캐릭터 그대로입니다.

어디이 잘못된거야?

클라우 데라 CDH 5를 사용하고

해결법

  1. ==============================

    1.하이브 문서에서 :

    하이브 문서에서 :

    그래서 당신은 출력이 형식을 당신 변환기를 변경하거나 UDF를 사용 --- 아니면 그냥 나는 보통 무엇 인 문자열로 유지하거나 필요로한다!

  2. from https://stackoverflow.com/questions/31051506/hive-not-detecting-timestamp-format by cc-by-sa and MIT license