2017-04-08 62 views
0

我有一个文件,其中包含变量描述,totalamt,年份和类型。将值存储在Pig中

如果年份是2000年,并且某种类型,我想存储这些字段供以后使用。

如果年份大于2000,我想从2000年的数值中找到增加百分比 。我已经看到了复制品,但不知道它是如何使用的。

mysales = load 'hdfs:/user/derezone_yahoo/retailsales.txt' using PigStorage(' ') AS (saledesc:chararray,totsales:int,salesyear:chararray,adjtype:chararray); 
baseamt = FOREACH mysales GENERATE IF salesyear=='2000' then join totalsales by 0 using replicated; 

此语句失败的语法错误,意想不到的符号在或接近 'salesyear'

有什么语法错误?我已经把它放在括号中,并仍然出错

也是我的复制语句正确存储totalamt在baseamt​​?

数据在一年顺序结构(即2000,2001,2002年等)

回答

0

的foreach不接受的if-else条件,你放在那里的方式。 在你的情况下,尝试是这样的:

mysales = load 'hdfs:/user/derezone_yahoo/retailsales.txt' using PigStorage(' ') AS (aledesc:chararray,totsales:int,salesyear:chararray,adjtype:chararray); 
B = FILTER mysales BY salesyear=='2000'; 
C = JOIN B BY .... (Your conditions) 

查看更多关于加入here