将pig中的12小时格式日期时间转换为24小时格式?

0qx6xfy6  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(551)
02/07/2016 12:43:23.324 PM   
mm/dd/yyyy hh:mm:ss.SSS AM/PM    -current format 12 hr

请帮助转换成Pig24小时格式。。。
hdfs中的文件

02/07/2016 12:43:23.324 PM
03/08/2016 08:12:15.123 AM

pig中的命令:

date_data = LOAD 'hdfs path' as (date: chararray);

todate_data = foreach date_data generate ToDate(date,'yyyy/MM/dd HH:mm:ss.SSS');

dump todate_data;

给出以下异常。
java.lang.illegalargumentexception:无效格式:“02/07/2016 12:43:23.324 pm”在“16 12:43:23.324 pm”的格式不正确

omqzjyyz

omqzjyyz1#

您必须指定输入的格式。例如,您的数据是'mm/dd/yyyy hh:mm:ss.sss aa'格式。因此请使用以下脚本。

date_data = LOAD 'hdfs path' as (date: chararray);
todate_data = foreach date_data generate ToDate(date,'MM/dd/yyyy hh:mm:ss.SSS aa');
dump todate_data;

下面是一个工作示例。输入的4个日期是'dd/mm/yyyy hh:mm:ss.sss aa'格式。
输入

30/06/2016 02:43:23.324 PM
01/12/2016 12:43:23.324 AM
21/08/2016 06:43:23.324 PM
13/07/2016 12:43:23.324 AM

脚本

A = LOAD 'test4.txt' AS (create_dt:chararray);
B = FOREACH A GENERATE ToDate(create_dt,'dd/MM/yyyy hh:mm:ss.SSS aa') AS create_dt;
DUMP B;

输出

相关问题