例如:我将配置单元表列(日期时间数据类型)值放入Pig中,并希望提取;y日期部分。我试过使用ToDate函数。以下是错误信息。在这种危急的情况下请帮帮我。
此列中的原始值为"2014-07-29T06:01:33.705-04:00",我需要输出为"2014-07.29"
ToDate(eff_end_ts,'YYYY-MM-DD') AS Delta_Column;
2016-07-28 07:07:25298〔main〕错误org.apache.pig.tools.grunt.grunt-错误1045:无法将org.apache.pig.builtin.ToDate的匹配函数推断为多个或没有适合请使用显式强制转换。
假设您的列名为f1,其时间戳值为2014-07-29T06:01:33.705-04:00,则您必须使用GetYear()、GetMonth、GetDay和CONCAT将其设置为所需格式。
B = FOREACH A GENERATE CONCAT(
CONCAT(
CONCAT((chararray)GetYear(f1),'-')),
(CONCAT((chararray)GetMonth(f1),'-')),
(chararray)GetDay(f1)) AS Day;
我做了变通来解决问题,它的工作方式是:
ToDate(ToString(eff_end_ts,'YYYY-MM-DD'),'YYYY-MM-DD') AS (datetime: Delta_Column)