2012-01-12 1 views
1

의 내가 아파치 돼지에서 다음과 같은 입력 있다고 가정 해 봅시다 :아파치 돼지 라틴에서 GROUP의 반대편에?

(123, ((1, 2), (3, 4))) 
(666, ((8, 9), (10, 11), (3, 4))) 

을하고 난 다음 7 행으로이 두 행을 변환 할 :이 반대를하고 '그렇다고입니다 즉

(123, (1, 2)) 
(123, (3, 4)) 
(666, (8, 9)) 
(666, (10, 11)) 
(666, (3, 4)) 

그룹'. 이것이 돼지 라틴에서 가능한가?

답변

2

FLATTEN을 살펴보십시오. 그것은 아마도 당신이 필요로하는 일을합니다.

그러나 위의 표기법을 사용하면 튜플 목록이 터플 인 것처럼 보입니다. 이것이 제대로 작동하려면 가방이어야합니다.

대신 :

(123, ((1, 2), (3, 4))) 
(666, ((8, 9), (10, 11), (3, 4))) 

당신은 귀하의 데이터를 표현한다 : 그것은이 양식되면, 당신이 할 수있는, 그런

(123, { (1, 2), (3, 4) }) 
(666, { (8, 9), (10, 11), (3, 4) }) 

:

O = FOREACH grouped GENERATE $0, FLATTEN($1); 
+0

예 그게 무슨이다 나는 필요하다. 내가 입력 데이터를 변경하여 bag이 튜플이 아니고 잘 작동하도록했습니다. – Rory