用年加载猪的数据时出错

问题描述 投票:0回答:1

我想写一个猪拉丁文字:我必须在1951年之后加载所有数据(不包括1951年)并过滤质量= 1的数据按温度分组数据,然后计算每个温度的最大年份。

做过这个

records = load '/user/a106524609/test.txt' using PigStorage(' ') as 
(year:chararray, temperature:int, quality:int);
rec1 = filter records by year >1951 and (quality == 1);

我收到此错误enter image description here

hadoop hdfs apache-pig
1个回答
1
投票

您将年份加载到chararray字段并将其与1951进行比较,这是一个int.You有两个选项。将年份加载到int或者在filter语句中将年份转换为int。

records = load '/user/a106524609/test.txt' using PigStorage(' ') as 
(year:int, temperature:int, quality:int);
rec1 = filter records by year > 1951 and (quality == 1);

要么

records = load '/user/a106524609/test.txt' using PigStorage(' ') as 
(year:chararray, temperature:int, quality:int);
rec1 = filter records by year:int > 1951 and (quality == 1);-- Note (int)year > 1951 should work too
© www.soinside.com 2019 - 2024. All rights reserved.