2016-08-24 5 views
1

私は2つの保存されたデータセットを持っている:キーがカラムに分割されている場合、Apache Pigで2つのストアを結合するにはどうすればよいですか?

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

私はA1とB1 + 2することにより、これらの2つのデータセットに参加したいと思います。私は、データセットAのcol 1がデータセットBのcol 1 + 2と等しいことを知っています。それらは同じですが、Bで分割されています。私はB1が常に5文字長であることを知っています。 2文字になります。

ソースファイルを変更せずに、このような結合を実行するにはどうすればよいですか?

+0

これがA = B.Col1 + B.Col2の内部結合Bからの標準SQLの場合 – xQbert

答えて

3

あなたはb1_newとしてCONCAT(B1、B2)を使用して、関係Bの新しい列を生成し、Aに参加し、新しい関係があなたのファイルをB_New.Assumingにその新しい列を使用してB_Newを言うことができるタブが

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; 
を区切られています
関連する問題