2015-04-02 53 views
0

我有一個日期chararray 2014-11-02 16:57:29。我想把這個轉換成長我怎麼能做到這一點?如何轉換爲以毫秒爲單位的時間從YYYY-MM-DD HH:MM:SS Pig中的日期

我從鏈接試圖 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月2日16時57分29秒2014年11月2日13時13分05秒

我得到

[POUserFunc(名稱: POUserFunc(org.apache.pig.piggybank.evaluation.datetime.convert.ISOToUnix)[長] - 範圍-5 Operato r鍵:scope-5)children:null at []]:java.lang.NullPointerException。

請問有人能幫我一把。謝謝

回答

0

ISOToUnix(CONCAT(REPLACE(dt,'','T'),'.000Z'))看起來是一個很好的快速答案。這裏我們將字符串轉換爲iso,然後使用ISOToUnix使用有效的時區

相關問題