2016-05-17 11 views
0

私は定義されたスキーマと2つの関係を持っています。 relationAに存在しないレコードのみを取得したいと考えています(左中央の視覚化this postを参照してください)。Pig LatinにWHERE句を使用して外部結合を書く方法は?

以下の2つのバリエーションを、いずれも成功しないまま試しましたが、両方とも以下のエラーが返されます。 Pigでこのタイプの操作を実行するにはどうすればよいですか?

"ERROR 1200が一致しない入力 'WHERE' SEMI-COLONが必要です。"

join_result = JOIN relationA by (project_id, sequence_id) LEFT OUTER, relationB by (project_id, sequence_id) WHERE relationB (project_id, sequence_id)is null; 

join_result = JOIN relationA by (project_id, sequence_id) LEFT OUTER, relationB by (project_id, sequence_id) WHERE (relationB.project_id is null) AND (relationB.sequence_id is null); 

答えて

1

PIG.YouでJOINには、「WHERE」句は、条件に基づいてレコードを除去するフィルタを使用する必要がないでしょうがあります。

join_result = JOIN relationA by (project_id, sequence_id) LEFT OUTER, relationB by (project_id, sequence_id); 
final_result = FILTER join_result BY (relationB.project_id is null AND relationB.sequence_id is null); 
関連する問題