2017-03-31 9 views
0

아파치 돼지를 사용하면 id 필드 (이 경우 '제목')로 그룹화 된 필드의 모든 순열이 필요합니다. 입력 데이터는 다음과 같습니다아파치 돼지, id에 의해 그룹화 된 값의 순열

스키마가 나는 하나의 목록에서 TITLE1 이름의 관계와 직책 2 명 관계의 모든 순열을 필요 {chararray, chararray}

(title1, name1) 
(title1, name2) 
(title1, name3) 
(title2, name4) 
(title2, name5) 
(title2, name6) 

입니다. 원하는 출력은 다음과 같습니다

(name1, name2) 
(name1, name3) 
(name2, name3) 
(name4, name5) 
(name4, name6) 
(name5, name6) 

나는이 관련 대답 How To Find All Possible Permutations From A Bag under apache pig을 찾았지만 각 제목 필드의 순열을 제한하도록 내가 솔루션 확장에 어려움을 겪고 있어요.

답변

0

이 두 게시물을 사용, 좀 더 검색을 수행 한 후 : How To Find All Possible Permutations From A Bag under apache pig, PIG: Get all tuples out of a grouped bag이 솔루션를 알려준 :

입력 스키마는 {chararray, chararray}

inpt = foreach input generate $0 as (id:chararray), $1 as (val); 
grp = group inpt by (id); 
id_grp = foreach grp generate group as id, inpt.val as value_bag; 
result = foreach id_grp generate FLATTEN(value_bag) as v1,FLATTEN(value_bag) as v2; 
result = filter result by v1 <= v2; 
result = filter result by v1 != v2; 
입니다