2016-06-10 8 views
0

에 돼지 라틴어에서이 출력을 얻을하는 방법 나는 다음과 같은 피그 라틴 쓴 data sample for adult data는 맵리 듀스

다음 데이터 샘플에서 돼지 라틴어/하둡

((39,50,60,42,15,Bachelor,Male),5) 
((40,35,HS-grad,Male),2) 
((39,45,15,30,12,7,HS-grad,Female),6) 

에서 다음과 같은 출력을 얻으려면 스크립트

sensitive = LOAD '/mdsba/sample2.csv' using PigStorage(',') as (AGE,EDU,SEX,SALARY); 
BV= group sensitive by (EDU,SEX) ; 
BVA= foreach BV generate group as EDU, COUNT (sensitive) as dd:long; 
Dump BVA ; 

불행하게도, 그 결과는이

처럼 올
((Bachelor,Male),5) 
((HS-grad,Male),2) 
+0

이 봐 되세요 - http://stackoverflow.com/questions/21104792/in-pig-how-to-concatenate-all-items-in-bag – Amit

답변

1

AGE 데이터도 투영 해보십시오. 이 같은 뭔가 : 당신이 데이터를로드 할 때

BVA= foreach BV generate 
    sensitive.AGE as AGE, 
    FLATTEN(group) as (EDU,SEX), 
    COUNT(sensitive) as dd:long; 

또 다른 제안은 데이터 유형을 지정하는 것입니다.

sensitive = LOAD '/mdsba/sample2.csv' using PigStorage(',') as (AGE:int,EDU:chararray,SEX:chararray,SALARY:chararray); 
+0

감사 Kecso을하지만 코드는 오류 메시지를 생성합니다 그룹 : 튜플 (EDU : BYTARRAY, SEX : bytearray), 민감한 : bag {: tuple (AGE : BYTearray, EDU : bytearray, SEX : bytearray, SALARY : bytearray) 스키마에 존재 필드가 없습니다. }. " –

+0

예. 민감한 가방에서 액세스해야합니다. sensitive.AGE – kecso

+0

예 작동 매력입니다. 많은 감사합니다. –

관련 문제