我有一个名为campaigndata.csv的数据。它有272列。第272列是日期。在Pig中加载数据时,我遇到时间转换错误。
在272列输入数据:
Wed, 09/29/10 03:52 PM
猪脚本:
-To load data in Pig
REGISTER /home/hduser/pigghduserybank.jar;
DEFINE CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
data0 = load 'campaigndata/CampaignData.csv' using CSVLoader;
data1 = filter data0 by $0 != 'CLICK_FLG';
data2 = foreach data1 generate ($0 == 'N' ? 0:1), ($1 == 'N' ? 0:1), $2..$271, ToDate($272,'EEE, MM/dd/yyyy hh:mm a');
dump data2;
我遇到了
之类的错误
我希望日期格式为“ day”,“ mm / dd / yyyy”,“ hh:mm”,“ am / pm”。然后只有我可以使用其他的猪脚本。
答案 0 :(得分:0)
错误是因为您在第273列上使用ToDate。如果您的输入文件有272列,则在Pig中,您可以使用从$ 0到$ 271的位置表示法来访问它们。还请注意年份是'yy'格式而不是' yyyy'
data2 = foreach data1 generate ($0 == 'N' ? 0:1), ($1 == 'N' ? 0:1), $2..$270, ToDate($271,'EEE, MM/dd/yy hh:mm a');