2016-07-25 3 views
0

먼저 두 개의 데이터 파일이 있습니다.돼지에 가방을 결합하는 방법

largefile.txt :

1001 {(1,-1),(2,-1),(3,-1),(4,-1)} 

smallfile.txt :

1002 {(1,0.04),(2,0.02),(4,0.03)} 

와 나는 같은 smallfile.txt 원하는 :

1002 {(1,0.04),(2,0.02),(3,-1),(4,0.03)} 

가입하고 난 어떤 종류의 작업을 수행 할 수 있음 이 같은?

A = LOAD './largefile.txt' USING PigStorage('\t') AS (id:int, a:bag{tuple(time:int,value:float)}); 

B = LOAD './smallfile.txt' USING PigStorage('\t') AS (id:int, b:bag{tuple(time:int,value:float)}); 

답변

0

요구 사항을 조금 지울 수 있습니까? largefile.txt와 smallfile.txt의 첫 번째 열/필드에 같은 값 (예 : 1002)으로 참여 하시겠습니까? -

A = LOAD './largefile.txt'USING PigStorage ('\ t') AS (id : int, a : bag {tuple (time : int, value : float)});

A = Foreach A 생성 ID, 시간, 값으로 FLATTEN (a);

B = LOAD './smallfile.txt'USING PigStorage ('\ t') AS (ID : int, b : bag {tuple (time : int, value : float)}));

B = Foreach B는 id, FLATTEN (b)를 시간, 값으로 생성합니다.

joined = join A by A.id, B by B.id;

관련 문제