2017-08-08 24 views
0

私はブタの2つのデータセットを比較しようとしています。豚の2つのデータセットの比較

A = Load 'file' using pigstorage('|') (id : chararray, id1: charray, id2 : charray, name: charray, name1 : chararray, adr : chararray); 

B = Load 'file1' using pigstorage('|') (id : chararray, id1: charray, id2 : charray); 

iはファイル1からの組み合わせは、(ID、ID1、ID2)がファイル2

以降から(ID、ID1、ID2)の組合せに等しくなければならないスキーマの上にあるとし私は組み合わせが一致した出力を (id:chararray、id1:charray、id2:charray、name:charray、name1:chararray、adr:chararray)として保存します。

また、別のファイルにも一致しない組み合わせの結果を出力することができます。

誰でも助けてくれますか?助けを前にありがとう!

答えて

0

JOINを使用すると、簡単に一致する組み合わせを見つけることができます。 (私はLEFT OUTERは、両方が一致取得するためにJOINを使用してNON_MATCHED)

A = Load 'file1' using PigStorage('|') as (id : chararray, id1: chararray, id2 : chararray, name: chararray, name1 : chararray, adr : chararray); 

B = Load 'file2' using PigStorage('|') as (id : chararray, id1: chararray, id2 : chararray); 

C = JOIN A BY (id, id1, id2) LEFT OUTER, B BY (id, id1, id2); 

をそして、マッチしNOT_MATCHEDを分離するためにSPLITを使用しています。

SPLIT C INTO MATCHED IF B::id is not null, NOT_MATCHED IF B::id is null; 
+0

splitには変数が必要ですか?スプリットを直接保管することはできますか? – dk3094

+0

@ dk3094 splitの構文は です。SPLIT別名INTO別名IF式、別名IF式[、別名IF式...]; MATCHEDとNOT_MATCHEDを別々に格納することができます。 – Wonjin

関連する問題