Pig Script toDate convertion问题产生不同的输出

时间:2017-05-24 11:18:27

标签: apache-pig bigdata

如何使用PIG转换日期和时间?我正在尝试转换为不转换为24小时格式的输入值

30/06/2016 02:43:23 PM 01/12/2016 12:43:23 AM

传递ToDate($0,'dd/MM/yyyy hh:mm:ss aa')

结果是

30/06/2016 02:43:23.324+05:30 01/12/2016 12:43:23+05:30

但期待结果为

30/06/2016 14:43:23 01/12/2016 12:43:23

任何人都可以帮助我

1 个答案:

答案 0 :(得分:1)

参考: http://pig.apache.org/docs/r0.12.0/func.html#to-date ToDate的返回类型是DateTime对象。

要将chararray日期转换为任何其他格式,则必须在获取DateTime对象后使用ToString()函数。

输入:a.csv

30/06/2016 02:43:23 PM
01/12/2016 12:43:23 AM

猪脚本:

adataset = LOAD 'a.csv' USING PigStorage(',') AS (display_date:chararray);
req = FOREACH adataset GENERATE ToString(ToDate(display_date,'dd/MM/yyyy hh:mm:ss a'),'yyyy/MM/dd HH:mm:ss'); 
DUMP req;