我有名为campaigndata.csv的数据。它有272列。第272列是日期。在pig中加载数据时,出现时间转换错误。
在272列输入数据:
Wed, 09/29/10 03:52 PM
Pig脚本:
-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;
我犯了这样的错误
我希望日期格式为“日”“mm/dd/yyyy”“hh:mm”“am/pm”。那就只有我可以用来写Pig的剧本了。
1条答案
按热度按时间js4nwp541#
错误是因为您在第273列上使用todate。如果您的输入文件有272列,则在pig中,您可以使用从$0到$271的位置符号来访问这些列。请注意,年份的格式是'yy',而不是'yyyy'