apachepig-我们如何从pig中的datetime数据类型列中只提取DATE部分



例如:我将配置单元表列(日期时间数据类型)值放入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)

最新更新