0

我有一个日期 chararray 2014-11-02 16:57:29。我想把它转换成 long 我该怎么做?

我尝试了链接 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 (Name: POUserFunc(org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix)[long] - scope-5 Operator Key: scope-5) children: null at []]: java.lang.NullPointerException .

有人可以帮帮我吗。谢谢

4

1 回答 1

0

ISOToUnix(CONCAT(REPLACE(dt, ' ', 'T'), '.000Z')) 看起来是一个很好的快速答案。在这里,我们将字符串转换为 iso,然后使用 ISOToUnix 使用有效时区

于 2015-04-02T14:30:45.533 回答