Hadoop 使用';合并';猪

Hadoop 使用';合并';猪,hadoop,apache-pig,hdfs,Hadoop,Apache Pig,Hdfs,我是Hadoop/猪的初学者 谁能告诉我两者的区别吗 grunt> A = join A by $1, B by $1 using 'merge'; 和 grunt>A=以$1加入A,以$1加入B 我有两个文件1.txt和2.txt,其中包含以下数据 1.txt A 1 b3 C5 D 7 2.txt AA 1 BB 2 CC 4 DD 6 我希望输出像这样合并在一起 A 1 AA 1 BB 2 b3 CC 4 C5 DD 6 D 7 “使用“合并”会给我想要的输出吗 我试过了

我是Hadoop/猪的初学者

谁能告诉我两者的区别吗

grunt> A = join A by $1, B by $1 using 'merge';     

grunt>A=以$1加入A,以$1加入B

我有两个文件1.txt和2.txt,其中包含以下数据
1.txt
A 1
b3
C5
D 7

2.txt
AA 1
BB 2
CC 4
DD 6

我希望输出像这样合并在一起
A 1
AA 1
BB 2
b3
CC 4
C5
DD 6
D 7

“使用“合并”会给我想要的输出吗

我试过了,但是没有


您能告诉我这里缺少了什么吗。

听起来您得到的是一个内部连接(数据集由一个公共键连接)而不是外部连接(这看起来像是您从所需输出中得到的)

使用关键字
FULL
表示您想要完全外部联接:

grunt> A = join A by $1 FULL, B by $1 using 'merge';  
但是,如果两个数据集中的记录都具有相同的$0(请参见内部联接示例),则这可能会产生意外的结果。您可能还需要修改输出以删除两个数据集之间缺少的列

或者,如果只想将一个数据集附加到另一个数据集,然后进行排序,请使用UNION和ORDER BY运算符

grunt> U = UNION A, B;
grunt> OrderedU = ORDER U BY $1

如需有关每种方法的详细信息