2017-04-08 5 views
0

私は変数description、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' 構文エラーは何ですか?私はカッコ内に入れてもエラーが残っています

もtotalamtをbaseamt​​に保存するのに正しいレプリケートステートメントですか?

データが(つまり2000年、2001,2002など)年の順で構成されている

答えて

0

foreachのはのif-else条件あなたがそこに置かれている方法は受け付けません。あなたのケースで は、このような何かを試してみてください:hereジョインに

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) 

もっと見る: