对于Ex:我将Hive表列(日期时间数据类型)值带入Pig并想要提取; y为DATE部分。我尝试过使用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:25,298 [main] ERROR org.apache.pig.tools.grunt.Grunt - 错误1045:无法将org.apache.pig.builtin.ToDate的匹配函数推断为多个或没有 适合。请使用明确的演员。
答案 0 :(得分:0)
假设您的列名为f1,其时间戳的值为2014-07-29T06:01:33.705-04:00,则必须使用GetYear(),GetMonth,GetDay并将其转换为所需格式。
B = FOREACH A GENERATE CONCAT(
CONCAT(
CONCAT((chararray)GetYear(f1),'-')),
(CONCAT((chararray)GetMonth(f1),'-')),
(chararray)GetDay(f1)) AS Day;
答案 1 :(得分:0)
我做了工作来弄清楚它的工作方式:
ToDate(ToString(eff_end_ts,'YYYY-MM-DD'),'YYYY-MM-DD') AS (datetime: Delta_Column)