は豚

2017-01-31 5 views
0

内の関数では、私はそれを達成するために、豚でDIF​​F()メソッドを使用して2つのテーブル(ソースとデスティネーション)との違いを見つけるためにしようとしている、NOT:は豚

sourcenew = LOAD 'hdfs://HADOOPMASTER:54310/DVTTest/Source.txt' USING PigStorage(',') as (ID:chararray,Name:chararray,FirstName:chararray ,LastName:chararray,Vertical_Name:chararray ,Vertical_ID:chararray,Gender:chararray,DOB:chararray,Degree_Percentage:chararray ,Salary:chararray,StateName:chararray); 


destnew = LOAD 'hdfs://HADOOPMASTER:54310/DVTTest/Destination.txt' USING PigStorage(',') as (ID:chararray,Name:chararray,FirstName:chararray ,LastName:chararray,Vertical_Name:chararray ,Vertical_ID:chararray,Gender:chararray,DOB:chararray,Degree_Percentage:chararray ,Salary:chararray,StateName:chararray); 

cogroupnew= COGROUP sourcenew by ID inner, destnew by ID inner; 

diffnew = FOREACH cogroupnew GENERATE DIFF(sourcenew,destnew); 

DUMP diffnew; 

は間の相違を与えます二つのテーブルまたはタプルが一致した場合、それはこの時まで正常に動作します} {空の袋を返すには、私の次のステップは、その

cogroupextrainsource= COGROUP sourcenew by ID inner, destnew by ID; 
filterextrainsource= FILTER cogroupextrainsource BY ID NOT (cogroupnew) 

その投げ誤差などのために、先に存在していないソースファイル内の余分なレコードを見つけることです期待される。 追加情報を見つけるにはヘルプが必要です。 ヘルプが大歓迎です。

ありがとうございました!

答えて

0

カラム名IDの横に$記号は必要ありません。$は名前でカラムにアクセスしたくない場合にのみ使用されます。

cogroupextrainsource = COGROUP sourcenew by ID inner, destnew by ID;