2016-11-26 1 views
0

오늘 내가 사방을 수색 했음에도 불구하고 어떤 방법으로도 해결할 수없는 문제에 부딪 혔기 때문에 나는 쓰고있다. 나는이 입력 파일이 있습니다돼지 라틴어 : 매우 간단한 가방을 넣는 것

3 {(car pen house glass)} 
5 {(battery phone)} 
6 {(the)} 

(나는 그들이 없어진 때문에 원본 파일에 '('및 ')'추가 한 것을 명확히하고 싶습니다을). 내 목표는이 파일을 LOAD를 사용하여 변수에로드하고 DUMP를 사용하여 덤프하는 것입니다.

wc = LOAD 'input.txt' USING PigStorage(' ') AS (count:int,b:bag{(s:chararray)}); 

(3,) 
(5,) 
(6,{(the)}) 


wc = LOAD 'input.txt' USING PigStorage(' ') AS (count:int,b:tuple(s:chararray)); 

(3,) 
(5,) 
(6,(the)) 


wc = LOAD 'input.txt' USING PigStorage(' ') AS (count:int,b:bag{item:tuple(s:chararray)}); 

(3,) 
(5,) 
(6,{(the)}) 

당신에게 그것을 해결하기 위해 어떤 생각을 가지고 :

는 나는 내가 만든 시도하여 상대 DUMP 출력 아래에 보여?

미리 감사드립니다.

답변

0

여기서 문제는 ''를 구분 기호로 사용하고 가방에 ''이 있습니다. 해결 방법은 레코드를 줄에로드 한 다음 STRSPLIT를 사용하여 줄을 두 개의 필드로 나누는 것입니다.

wc = LOAD 'input.txt' AS (line:chararray); 
wc_new = FOREACH wc GENERATE STRSPLIT(line,' ',2); 
DUMP wc_new; 
관련 문제