我想將yyyyMMdd格式轉換爲使用pig的yyyy/MM/dd格式,因爲我寫了下面的代碼。無效的格式:「19690321」太短
代碼:
STOCK_A = LOAD '/user/root/xxxx/*' USING PigStorage('|');
data = FILTER STOCK_A BY ($1 matches '.*ID.*');
MSH_DATA = FOREACH data GENERATE ToDate($8,'yyyy/MM/dd','UTC') AS dob;
當我試圖轉儲結果我收到以下錯誤。
ERROR org.apache.pig.tools.pigstats.SimplePigStats - ERROR 0:執行 異常[POUserFunc(名稱: POUserFunc(org.apache.pig.builtin.ToDate3ARGS)[日期時間] - scope- 209 操作按鍵:範圍-209)兒童:空在[]: java.lang.IllegalArgumentException異常:無效的格式爲: 「19690321」 太 短
樣品:
[email protected]#PDULD21F|ID|1|483|1020783||[email protected]#PDULD||19690321|F|
8美元似乎對我有效我無法找到問題的原因即將到來。任何幫助將非常感激。
之前將其轉換爲
chararray
,但我想日期是從年月日YYYY/MM/DD格式。我怎麼能做到這一點? – Ironman該todate將您的字符串轉換爲日期。 Pig會知道格式是日期,你將能夠做到這一點(計算年齡,2日期之間的選擇行...)如果你想打印回你的日期,你必須轉換回ToString的字符串。例如,您可以使用「ToString(yourDate,'yyyy/MM/dd')」。或者甚至是「ToString(yourDate,'ww-yyyy')」來獲得週數。 – wargre