2012-02-27 20 views
0

などの条件に基づいて既存のスキーマからレコードを生成したいとします。私は何かをしたいのですPig Latinで投影中の条件に基づいてレコードを生成する

A = load 'data' using PigStorage() as (f1:int, f2:int); 
B = foreach A generate (f1 == 0 ? null : A); 

これを行うには適切な方法はありますか?

+1

"generate"レコードとはどういう意味ですか?構文に基づいて、新しいレコードを生成しないようにしました。 Aのすべてのレコードをループしてbincondを適用するだけです。あなたはbincondでAを参照することはできません。あなたはそれを(f1 == 0?null:f1)のようなものに切り替えるといいでしょう。その場合は、代わりにFILTERを使用することもできます。 – NerdyNick

答えて

1

あなたは次のようにBを生成することがありました:

SPLIT A INTO B IF f1 != 0; 

SPLIT documentationを参照してください。

0
A = load 'data' using PigStorage() as (f1:int, f2:int); 

B = filter A by f1 != 0 ; 
関連する問題