Join Pig中多个表的外部联接

Join Pig中多个表的外部联接,join,outer-join,apache-pig,Join,Outer Join,Apache Pig,我需要连接多个表。我使用的命令如下所示: 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; 但它给了我一个不匹配的输入错误消息。我该怎么做 谢谢 根据清管器: 外部联接仅适用于双向联接;多向 外部联接,您将需要执行多个双向外部联接 声明 可以使用COGROUP语句模拟完全外部联接。例如,

我需要连接多个表。我使用的命令如下所示:

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;
但它给了我一个
不匹配的输入
错误消息。我该怎么做

谢谢

根据清管器:

外部联接仅适用于双向联接;多向 外部联接,您将需要执行多个双向外部联接 声明


可以使用COGROUP语句模拟完全外部联接。例如,使用以下两个文件进行cogroup on

Decimal.csv

first|1
second|2
fourth|4
Roman.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)})

这一页是我经常读的。提到对该页面上的“基于公共字段值执行两个或多个关系的外部联接”执行ctrl+f。我开始认为这可能是一个输入错误。@Navneet:在完全外部连接中,记录从两侧获取,即使它们不匹配。文件明确指出,完全外部连接需要两个面,而不是三个面。您得到的错误消息可能有误导性,因此您可能希望通过检查Pig源代码中相应的junit testcase来验证这一点:
org.apache.Pig.test.TestJoin#testMultiOuterJoinFailure()
at