Skip to content

[pig] MERGE JOIN

dsindex edited this page Aug 27, 2014 · 8 revisions

reference

file A, line count = 10,000,000,000 (100억)

query \t frequency

file B, line count = 100,000,000 (10억)

query

Q : file B에 있는 query가 file A에 존재하는 경우, 해당하는 frequency를 가져오고 싶다.

A : 이런 경우 아래와 같이 merge join을 사용해서 처리 가능.

A = LOAD '$input_left' USING PigStorage('\t');
B = LOAD '$input_right' USING PigStorage('\t');
C = JOIN A by $0, B by $0 using 'merge';
-- C = A + B if A.$0 == B.$0
-- row count of C <= row count of B
STORE C INTO '$output' USING PigStorage('\t');

단, 개별 입력의 key값은 'ASC'로 정렬돼 있어야만 한다.

A = LOAD '$input' USING PigStorage('\t');
B = ORDER A BY $0 ASC;
STORE B INTO '$output' USING PigStorage('\t');
  • 문제점
    • key값
Clone this wiki locally