2014-12-18 2 views
0

가 각 행 5 열은 그 5 열은 일반적으로 쉼표로 구분됩니다 SQL-HIVE 돼지 -Mapreduce

1 column is name 
2nd column is date_of_purchase 
3rd column is product 
4th column is mode of payment 
5th column is total_amount 

당신이 그것을 포함 된 데이터를 이해 희망은 내가 필요한 것

surender,2014-03-09,TV,OFFLINE,20000 
surender,2014-01-01,Mobile,ONLINE,18000 
Raja,2014-09-21,Laptop,ONLINE,30000 
Surender,2014-10-12,Laptop,ONLINE,40000 
Raja,2014-FEB-11,MusicSystem,ONLINE,2000 
Kumar,2014-07-09,Ipod,OFFLINE,4000 
Kumar,2014-06-08,TV,ONLINE,20000 
Raja,2014-11-07,SPeakers,OFFLINE,8000 
Kumar,2014-10-18,Laptop,ONLINE,30000 

나는 각 사람이 온라인 모드와 오프라인 모드를 통해 얼마나 많은 돈을 썼는지보고 싶다.

기본적으로 나는 다음과 같은 감속기 출력이 필요하다.

surender OFFLINE 20000 
surender ONLINE 58000 
Raja  OFFLINE 8000 
Raja  ONLINE 32000 
Kumar  OFFLINE 4000 
Kumar  ONLINE 50000 

그리고 최종 출력은 다음과 같이해야한다 : 샘플 등의 데이터가 제공된 경우

surender 20000 58000 
Raja  8000 32000 
Kumar  4000 50000 

당신은 나에게 하이브 또는 돼지 쿼리 또는 맵리 듀스 프로그램

답변

1
A = LOAD 'file_name' using PigStorage(',') as (name:chararray,date:chararray,product:chararray,mode:chararray,total:long); 
B = GROUP A BY (name,mode); 
C = FOREACH B GENERATE group.name as name,group.mode, SUM(total) as total; 
D = GROUP C BY name; 
E = FOREACH D GENERATE group, C.total; 

중 하나를 제공 할 수 있습니다 철자가 다르면 그룹화하기 전에 대문자로 변환해야합니다.

+0

감사합니다. – anusngh

+1

@AnuragSingh, 질문에 대한 답변을 수락하십시오! – aioobe