在猪中存储值

时间:2017-04-08 21:47:31

标签: apache-pig storage

我有一个包含变量描述,totalamt,年份和类型的文件。

如果年份是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'

语法错误是什么?我把它放在括号中但仍然出错

我的复制语句是否正确将totalat存储在baseamt​​中?

数据按年份顺序排列(即2000年,2001年,2002年等)

1 个答案:

答案 0 :(得分: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