У меня есть сценарий PIG, который
- Загружает и преобразует данные из CSV
- Заменяет некоторых персонажей
Вызывает java-программу (JAR) для преобразования даты и времени в csv с 06.02.2015 18:52 до 2015-6-2 18:52 (мм / дд / гггг в гггг-мм-дд)
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 02.06.2015 18:52 -9,59 518
Пример вывода - 21467245 2015-6-2 18:52 9,59 518
Я загружаю выходные данные в куст, другие поля кажутся нормальными во время импорта, но поле даты и времени приводит к нулю, если загружено как временная метка, и остается нетронутым, когда его строка.
Где все идет не так?
Я использую Cloudera CDH 5
ToDate()
. - person gobrewers14   schedule 25.06.2015yyyy-MM-dd
, тогда зачем вам указыватьyyyy-MM-dd HH:mm
в функцииToDate()
? просто положитеyyyy-MM-dd
- person gobrewers14   schedule 25.06.2015