在pig中存储值

dsekswqp  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(400)

我有一个包含变量description、totalamt、year和type的文件。
如果年份是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”处或附近出现意外符号
什么是语法错误?我已经把它放在括号里了,但还是错了
我的replicate语句是否正确地将totalamt存储在baseamt中?
数据按年份顺序排列(即2000、20012002等)

mwecs4sa

mwecs4sa1#

foreach不接受你提出的条件。在您的情况下,请尝试以下操作:

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)

有关连接的详细信息,请参见:

相关问题