2014-12-24 3 views
1

아래 질문에 돼지 스크립트를 쓰고 싶습니다.돼지에서 한 줄을 여러 줄로 변환

입력은 다음과 같습니다

ABC,DEF,GHI,JKL,AAA,aaa,1,2,3,bbb,1,2,3,ccc,1,2,3,BBB,aaa,1,2,3,bbb,1,2,3,ccc,1,2,3 

출력은 다음과 같아야합니다

ABC,DEF,GHI,JKL,AAA,aaa,1,2,3 
ABC,DEF,GHI,JKL,AAA,bbb,1,2,3 
ABC,DEF,GHI,JKL,AAA,ccc,1,2,3 
ABC,DEF,GHI,JKL,BBB,aaa,1,2,3 
ABC,DEF,GHI,JKL,BBB,bbb,1,2,3 
ABC,DEF,GHI,JKL,BBB,ccc,1,2,3 

누구 나 좀 도와 주 시겠어요?

+0

그리고 무엇을 시도 했습니까? – J0e3gan

답변

0

당신은 아래 방법을 사용자 정의 UDF를 작성하거나 시도 할 수

ABC,DEF,GHI,JKL,AAA,aaa,1,2,3,bbb,1,2,3,ccc,1,2,3,BBB,aaa,1,2,3,bbb,1,2,3,ccc,1,2,3,CCC,aaa,1,2,3,bbb,1,2,3,ccc,1,2,3 

PigScript input.txt를 :

A = LOAD 'input.txt' USING PigStorage(','); 
B = FOREACH A GENERATE $0,$1,$2,$3, 
         FLATTEN(TOTUPLE($4)), 
         FLATTEN(TOBAG(
            TOTUPLE($5..$8), 
            TOTUPLE($9..$12), 
            TOTUPLE($13..$16) 
            ) 
          ); 
C = FOREACH A GENERATE $0,$1,$2,$3, 
         FLATTEN(TOTUPLE($17)), 
         FLATTEN(TOBAG(
            TOTUPLE($18..$21), 
            TOTUPLE($22..$25), 
            TOTUPLE($26..$29) 
            ) 
          ); 
D = UNION B,C; 
DUMP D 

출력 :

(ABC,DEF,GHI,JKL,AAA,aaa,1,2,3) 
(ABC,DEF,GHI,JKL,AAA,bbb,1,2,3) 
(ABC,DEF,GHI,JKL,AAA,ccc,1,2,3) 
(ABC,DEF,GHI,JKL,BBB,aaa,1,2,3) 
(ABC,DEF,GHI,JKL,BBB,bbb,1,2,3) 
(ABC,DEF,GHI,JKL,BBB,ccc,1,2,3) 
+0

감사합니다. 그것은 작동한다. – Viru

관련 문제