pig脚本todate转换问题导致不同的输出

kx7yvsdv  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(283)

如何使用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 有人能帮我吗

zaq34kh6

zaq34kh61#

裁判:http://pig.apache.org/docs/r0.12.0/func.html#to-date todate的返回类型是datetime对象。
若要将字符日期转换为任何其他格式,则必须在获取datetime对象后使用tostring()函数。
输入:a.csv

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

Pig脚本:

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;

相关问题