Как преобразовать время в миллисекунды из даты ГГГГ-ММ-ДД ЧЧ: ММ: СС в Apache Pig

У меня одно свидание chararray 2014-11-02 16:57:29. я хочу преобразовать это в долго, как я могу это сделать?

Я попробовал по ссылке https://pig.apache.org/docs/r0.14.0/api/org/apache/pig/piggybank/evaluation/datetime/convert/ISOToUnix.html

DEFINE ISOToUnix org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix();

DEFINE CustomFormatToISO org.apache.pig.piggybank.evaluation.datetime.convert.CustomFormatToISO();

ISOin = LOAD '/user/sample/test.csv' USING PigStorage() AS (dt:chararray, dt2:chararray);

toUnix = FOREACH ISOin GENERATE ISOToUnix(CustomFormatToISO(dt, 'YYYY-MM-DD HH:MM:SS')) AS event_time;

DUMP toUnix;

test.csv содержит 2014-11-02 16:57:29 2014-11-02 13:13:05

я получаю

[POUserFunc (Имя: POUserFunc(org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix)[long] - ключ оператора scope-5: scope-5) children: null в []]: java.lang.NullPointerException,

Может кто-нибудь, пожалуйста, помогите мне. Спасибо

1 ответ

ISOToUnix(CONCAT(REPLACE(dt, ' ', 'T'), '.000Z')) выглядит хорошим быстрым ответом. здесь мы конвертируем строку в iso, затем используем ISOToUnix, используя правильный часовой пояс

Другие вопросы по тегам