我一直在试图转换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