2017-04-08 55 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