当key被划分为to列时,如何连接apachepig中的两个存储?

nom7f22z  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(427)

我有两个存储的数据集:

A
ASDFGFG 5 7 8 9
B
ASDFG FG 5 7 8 9

我想用a1和b1+2连接这两个数据集。我知道数据集a中的列1等于数据集b中的列1+2。它们是一样的,但在b中分开。我也知道b1的长度总是5个字符,尽管我不能确定b2是2个字符。
最好在不修改源文件的情况下,如何执行这种连接?

ss2ws0br

ss2ws0br1#

您可以使用concat(b1,b2)作为b1\u new在关系b中生成一个新列,然后使用b\u new中的新列连接a和新关系

A = LOAD 'A.txt' USING PigStorage('\t') AS (a1:chararray,a2:int,a3:int,a4:int,a5:int);
B = LOAD 'B.txt' USING PigStorage('\t') AS (b1:chararray,b2:chararray,b3:int,b4:int,b5:int,b6:int);
B_New = FOREACH B GENERATE CONCAT(b1,b2) AS b1_new,b3,b4,b5,b6;
AB = JOIN A BY a1,B_New BY b1_new;
DUMP AB;

相关问题