2016-08-17 4 views
0

У меня есть входные данные, как:Сводные строки в Pig

Abhinav,10K 
Abhinav,20K 
Abhinav,30K 
Nitin,15K 
Nitin,25K 
Mohit,50K 

мне нужен конечный результат, как:

(Abhinav,10K,20K,30K) 
(Nitin,15K,25K) 
(Mohit,50K) 

Я пришел до этого промежуточного пункта:

(Abhinav,{(10K),(20K),(30K)}) 
(Mohit,{(50K)}) 
(Nitin,{(15K),(25K)}) 

Кроме того, есть ли способ конвертировать эту промежуточную точку в окончательное решение.

+0

Для достижения конечного результата необходимо сгладить промежуточную точку. Посмотрите на это: https://stackoverflow.com/questions/11213567/pivot-table-with-apache-pig?rq=1 – gonephishing

+0

TOBAG и TOTUPLE помогут вам получить этот результат. вы также можете обратиться к этому: https://stackoverflow.com/questions/27492700 – Bector

+0

@Bector: У меня нет промежуточного столбца NAME, поэтому я могу получить желаемый результат. –

ответ

0

Как-то я получил ответ, и это очень легко!

NameSal = LOAD '/home/asingh50/NameSalary.txt' USING PigStorage(',') AS(name:chararray,salary:chararray); 
NameSalGroup = GROUP NameSal by (name); 
NameSalResult = FOREACH NameSalGroup GENERATE group AS Name, BagToString(NameSal.salary, ',') as salary:chararray; 
Смежные вопросы