从字符串到日期转换ISO日期格式会出错?

时间:2016-06-28 19:02:31

标签: hadoop apache-pig hadoop2

我一直在尝试转换ISO日期格式('2016-06-23T20:04:41.914Z'),它是字符串到日期数据类型。在Pig Docs中,有一个函数ToDate将字符串转换为Date({ {3}})。 所以我尝试了不同的方式:

1

b = FOREACH a GENERATE ToDate(status_date,'yyyy-MM-dd hh:mm:ss.SSS);

错误:

  

引起:java.lang.IllegalArgumentException:格式无效:“2016-06-23T20:04:41.914Z”格式错误在“T20:04:41.914Z”

2

b = FOREACH a GENERATE ToDate(status_date);

错误:

  

引起:java.lang.IllegalArgumentException:格式无效:“”

3

b = FOREACH a GENERATE ToDate(status_date,'yyyy-MM-ddThh:mm:ss.SSSZ');

错误:

  

引起:java.lang.IllegalArgumentException:非法模式组件:T

如果我遗失了某些内容,或者除了编写udf和使用concat之外还有其他方法,请告诉我。 如果需要任何其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

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