我想在Pig的一个文件上做一个中值运算。文件看起来像这样。
NewYork,-1
NewYork,-5
NewYork,-2
NewYork,3
NewYork,4
NewYork,13
NewYork,11
Amsterdam,12
Amsterdam,11
Amsterdam,2
Amsterdam,1
Amsterdam,-1
Amsterdam,-4
Mumbai,1
Mumbai,4
Mumbai,5
Mumbai,-2
Mumbai,9
Mumbai,-4
将加载文件,其中的数据分组如下:
wdata = load 'weatherdata' using PigStorage(',') as (city:chararray, temp:int);
wdata_g = group wdata by city;
我试着从城市的所有温度中得出中间值,如下所示:
wdata_tempmedian = foreach wdata_g { tu = wdata.temp as temp; ord = order tu by temp generate group, Median(ord); }
数据是有序的,因为需要按顺序排序才能找到中间值。但是我收到了以下错误信息,我不知道是什么错误:
[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 3, column 53> mismatched input 'as' expecting SEMI_COLON
非常感谢您的帮助。
1条答案
按热度按时间gab6jxml1#
你缺少一个“;”定好温度后。
或
note:i am 假设您使用的是data fu,因为pig没有中值函数。请确保jar已正确注册