清管器todate铸造错误

wb1gzix0  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(309)

我有一个日期字段,我正试图通过如下日期转换为“todate”

2015-03-28@18:21:18.

ToDate(REPLACE(REPLACE(Date_Time, '@', ' '),'.',''),'yyyy-MM-dd HH:mm:ss')

工作死了,给了我这个错误;后端错误:无效格式:“”
我已经有了处理空值的过滤器,以及大小大于0的空过滤器。

4xrmg8kj

4xrmg8kj1#

todate函数的返回类型是datetime对象。您不需要替换@。带“”(空格)的字符。
裁判:http://pig.apache.org/docs/r0.12.0/func.html#to-具体日期
输入:a.csv

2015-03-28@18:21:18.

Pigscirpt:

A = LOAD 'a.csv' AS (dateValue:chararray);
  B = FOREACH A GENERATE ToDate(dateValue,'yyyy-MM-dd@HH:mm:ss.');
  DUMP B;

输出:

(2015-03-28T18:21:18.000-07:00)

我们还有一个重载todate函数,可以在其中指定时区。
例如:将时区指定为gmt

B = FOREACH A GENERATE ToDate(dateValue,'yyyy-MM-dd@HH:mm:ss.','GMT');
  DUMP B;

输出2:

(2015-03-28T18:21:18.000Z)

相关问题