pig todate函数工作不正常

jum4pzuy  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(320)

我试着用日期函数来转换字段。

raw_data = LOAD '/user/cloudera/Chicago_Traffic_Tracker_-  _Historical_Congestion_Estimates_by_Region.csv' USING PigStorage(',') AS ( TIME   :chararray,REGION_ID:int,BUS_COUNT:int,NUMBER_OF_READS:int,SPEED:double); 

 raw_clean = FOREACH raw_data GENERATE ToDate(raw_data.TIME,'yyyy/MM/dd HH:mm:ss')as date_time:DateTime ;

我得到下面的错误
标量在输出中有多行。第一次:(01/29/2015 01:40:35 pm,22,33429,25.23),第二次:(01/05/2015 01:10:46 pm,18,581058,21.14)
输入

01/29/2015 01:40:35 PM,22,33,429,25.23,a61e11c83f811b63e1dc64362f799dcac322fca8
 01/05/2015 01:10:46 PM,18,58,1058,21.14,39c63427d0e1401a06f967fd43c30e291140c26e
ikfrs5lh

ikfrs5lh1#

没有尝试实践:但您的输入日期格式为01/29/2015 01:40:35,即mm/dd/yyyy hh:mm:ss。鉴于您已将其指定为“yyyy/mm/dd hh:mm:ss”
尝试以下操作:

raw_clean = FOREACH raw_data GENERATE ToDate(raw_data.TIME,'MM/dd/YYYY HH:mm:ss');

相关问题