2016-07-28 54 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) 
相關問題