2

複数のテーブルに参加する必要があります。私が使用しているコマンドは次のとおりです。

G = JOIN aa BY f, bb by f, cc by f, dd by f;

完全な外部結合にするために、次のFULLように追加しました。

G = JOIN aa BY f FULL, bb by f, cc by f, dd by f;

しかし、mismatched inputエラーメッセージが表示されます。これを機能させるにはどうすればよいですか?

ありがとう!

4

2 に答える 2

7

豚のドキュメントによると:

外部結合は双方向結合でのみ機能します。多方向外部結合を実行するには、複数の双方向外部結合ステートメントを実行する必要があります。

于 2012-10-25T21:56:21.960 に答える
1

COGROUP ステートメントを使用して、完全外部結合を模倣できます。たとえば、次の 2 つのファイルを使用して cogroup

小数.csv

first|1
second|2
fourth|4

ローマン.csv

first|I 
second|II
third|III

豚のコマンド:

english = LOAD 'Decimal.csv' using PigStorage('|') as (name:chararray,value:chararray);
roman = LOAD 'Roman.csv' using PigStorage('|') as (name:chararray, value:chararray);
multi = cogroup english by name, roman by name;
dump multi

出力:

(first,{(first,1)},{(first,I)})
(third,{},{(third,III)})
(fourth,{(fourth,4)},{})
(second,{(second,2)},{(second,II)})
于 2013-12-31T09:42:11.813 に答える