2016-06-28 76 views
0

我一直在试图转换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以外的任何其他方式。 也让我知道是否需要任何额外的信息。

+0

第二种方法应该可以工作,我在我的环境中尝试了它的正常工作。你可以显示status_date列的转储输出 – pratiklodha

回答

1

第二种方法应该工作,你的数据有一些记录有字段status_date为空?

+0

嘿它工作,我的数据中有空值。 –

相关问题