我有这样的数据
name, id, nametype,recclass,mass, fall, year,
Aachen,1, Valid, L5, 21, Fell, 01/01/1880 12:00:00 AM,
Aarhus,2, Valid, H6, 720 Fell, 01/01/1951 12:00:00 AM
: :
: :
: 45700
我必须找出每十年使用piglatin的录音数量。不知道起始和结束年份,因为数据未排序
我尝试了以下代码:
nasadata = load 'Meteorite_Landings.csv' using PigStorage(',') as(name:chararray,id:int,nametype:chararray,recclass:chararray,mass:int,fall:chararray,year:chararray);
B = FOREACH nasadata GENERATE year;
C = FOREACH B GENERATE ToDate(year,'dd-MM-YYYY') as year1;
当我转储c时,它显示无法从输入文件中读取数据。但当我转储nasadata时,它工作了。当我描述c时,它显示
C: {year1: datetime}
grunt>
1条答案
按热度按时间gcuhipw91#
您确定todate格式正确吗?因为“01/01/1880 12:00:00 am”没有“dd-mm-yyyy”格式,但是“01-01-1880”会。
您可以尝试格式化日期或使用
STRSPLIT(STRSPLIT(year, ' ').$0, '/').$2
提取年份。然后用(INT)STRSPLIT(STRSPLIT(year, ' ').$0, '/').$2
. 然后你就可以用这样的方法把一年的时间四舍五入到最接近的十年。