我有一个日期字段,我正试图通过如下日期转换为“todate”
2015-03-28@18:21:18. ToDate(REPLACE(REPLACE(Date_Time, '@', ' '),'.',''),'yyyy-MM-dd HH:mm:ss')
工作死了,给了我这个错误;后端错误:无效格式:“”我已经有了处理空值的过滤器,以及大小大于0的空过滤器。
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)
1条答案
按热度按时间4xrmg8kj1#
todate函数的返回类型是datetime对象。您不需要替换@。带“”(空格)的字符。
裁判:http://pig.apache.org/docs/r0.12.0/func.html#to-具体日期
输入:a.csv
Pigscirpt:
输出:
我们还有一个重载todate函数,可以在其中指定时区。
例如:将时区指定为gmt
输出2: