我一直在試圖轉換ISO日期格式('2016-06-23T20:04:41.914Z'),它是字符串到日期的數據類型。在Pig Docs中,有函數ToDate將字符串轉換爲Date(this) 。 所以我嘗試了不同的方式:從字符串到日期的ISO日期格式轉換是否會導致錯誤?
1.
b = FOREACH a GENERATE ToDate(status_date,'yyyy-MM-dd hh:mm:ss.SSS);
錯誤:
Caused by: java.lang.IllegalArgumentException: Invalid format: "2016-06-23T20:04:41.914Z" is malformed at "T20:04:41.914Z"
2.
b = FOREACH a GENERATE ToDate(status_date);
錯誤:
Caused by: java.lang.IllegalArgumentException: Invalid format: ""
3.
b = FOREACH a GENERATE ToDate(status_date,'yyyy-MM-ddThh:mm:ss.SSSZ');
錯誤:
Caused by: java.lang.IllegalArgumentException: Illegal pattern component: T
請讓我知道,如果我失去了一些東西,還是有比寫UDF和使用CONCAT以外的任何其他方式。 也讓我知道是否需要任何額外的信息。
第二種方法應該可以工作,我在我的環境中嘗試了它的正常工作。你可以顯示status_date列的轉儲輸出 – pratiklodha