복붙노트

[HADOOP] 일치하는 튜플 값에 합류 하둡 돼지

HADOOP

일치하는 튜플 값에 합류 하둡 돼지

나는 돼지에 새로운 데이터 세트를 처리하는 데 사용하려고 해요. 나는처럼 보이는 레코드 집합을

id    elements
--------------
1     ["a","b","c"]
2     ["a","f","g"]
3     ["f","g","h"]

아이디어는 내가 겹치는 요소가 요소의 튜플을 만들 것입니다. 요소 대신 배열의 단 하나의 항목이 있었다면, 나는 간단한 같이 가입 할 수 :

A = LOAD 'mydata' ...
B = FOREACH A GENERATE id as id_2, elements as elements_2;
C = JOIN A BY elements, B BY elements_2;

소자 배열이므로 일부만 겹쳐있을 경우에,이 작동하지 않을 것이다. 돼지에서이 작업을 수행하는 방법에 대한 어떤 생각?

의도 된 출력은 중복이있는 튜플을 줄 것입니다 :

(1,2)
(2,3)

해결법

  1. ==============================

    1.나는 이것에 대한 가입 사용하는 것이 가능하다고 생각하지 않습니다. 한 (그래서 우아한되지 않음) 솔루션은 관계를 교차 한 후 필터 작업을하는 것입니다. 필터 조건 중 어느 하나 또는 UDF regex_extract_all 일종의 및 제조 분야의 정합 될 수있다. 배열의 크기는 항상 3이면 나는 아마 regex_extract_all 솔루션을 갈 것입니다.

    나는 이것에 대한 가입 사용하는 것이 가능하다고 생각하지 않습니다. 한 (그래서 우아한되지 않음) 솔루션은 관계를 교차 한 후 필터 작업을하는 것입니다. 필터 조건 중 어느 하나 또는 UDF regex_extract_all 일종의 및 제조 분야의 정합 될 수있다. 배열의 크기는 항상 3이면 나는 아마 regex_extract_all 솔루션을 갈 것입니다.

  2. from https://stackoverflow.com/questions/22498259/hadoop-pig-joining-on-any-matching-tuple-values by cc-by-sa and MIT license