Найти максимальную сумму в зависимости от города и продукта, используя свинью? - PullRequest
0 голосов
/ 07 июня 2018

Мне нужно узнать максимальную сумму, потраченную на город вместе с продуктом.

Моя реализация:

A = LOAD '/home/cloudera/Desktop/test' USING PigStorage (',') AS (T_id:int,date:chararray,pro_id:int,amount:int,product:chararray,city:chararray);
B = FOREACH A GENERATE $3,$4,$5;
describe B;
B: {amount: int,product: chararray,city: chararray}
C = group B BY $2;
D = FOREACH C GENERATE group, MAX(B.amount);
DUMP D;

Что яполучение

(Reno,279)
(clark,2000)
(colum,500)
(Petersburg,421)
(charleston,1974)
(long beach,300)

Ожидаемый результат

(Com ports,Reno,279)
(Exer & Fit,clark,2000)
(Wat ports,colum,500)
(Team Sports,Petersburg,421)
(Recreation,charleston,1974)
(Exer & Fit,long beach,300)

Пожалуйста, помогите мне в этом ..

1 Ответ

0 голосов
/ 07 июня 2018

Группировка по продуктам и городам.

C = group B BY ($1,$2);
D = FOREACH C GENERATE FLATTEN(group) as (product,city), MAX(B.amount); 
DUMP D;
...