2016-07-28 47 views
0

例如:我在Pig中引入Hive表列(日期时间数据类型)值,并且想要提取; DATE部分。我曾尝试使用ToDate函数。以下是错误信息。请在这种危急情况下帮助我。如何从Pig中的datetime数据类型列中仅提取DATE部分?

在此列的原始值 “2014-07-29T06:01:33.705-04:00”,我需要出去放为 “2014年7月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

假设你的列名是具有像2014-07-29T06与价值观时间戳F1:01:33.705-04:00,你将不得不使用了getYear(),得到月,GetDay和CONCAT它的所需格式。

B = FOREACH A GENERATE CONCAT(
         CONCAT(
         CONCAT((chararray)GetYear(f1),'-')), 
         (CONCAT((chararray)GetMonth(f1),'-')), 
           (chararray)GetDay(f1)) AS Day; 
0

我周围的工作找出并通过这种方式它的工作:

ToDate(ToString(eff_end_ts,'YYYY-MM-DD'),'YYYY-MM-DD') AS (datetime: Delta_Column) 
相关问题