Считать после Соединение в Pig - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь загрузить два файла из hdfs в pig.После того, как я присоединюсь к Driver Relation и Truck Relation, я бы хотел посчитать.Как я могу посчитать строки в отношении?Я пытался это, но это дает мне счет с группой, не один счет:

truck_temp = FOREACH (GROUP truck_join BY  drivers_info::driverId) { GENERATE  group, COUNT(truck_join); };

drivers_load = LOAD '/Pig-Practice/drivers.csv' USING PigStorage(',') AS (driverId:int,name:chararray,ssn:biginteger,location:chararray,certified:chararray,wageplan:chararray);
drivers_info = FOREACH ( GROUP drivers_load BY (driverId,name)) GENERATE group.driverId,group.name;

event_load = LOAD '/Pig-Practice/truck_event_text_partition.csv' USING PigStorage(',') AS (driverId:int, truckId:int, eventTime:chararray,
eventType:chararray, longitude:double, latitude:double,
eventKey:chararray, correlationId:long, driverName:chararray,
routeId:long,routeName:chararray,eventDate:chararray);
truck_events1 = FILTER event_load BY $0 >1;

truck_events2 =  FOREACH (GROUP truck_events1 BY (driverId,driverName,routeId,routeName) ) GENERATE group.driverId,group.driverName,group.routeId,group.routeName;

truck_join =  JOIN drivers_info BY driverId, truck_events2 BY driverId;

1 Ответ

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

Чтобы получить общее количество после объединения, вам нужно сгруппировать все.

COUNT требует предшествующего оператора GROUP ALL для глобальных подсчетов и оператора GROUP BY для групповых подсчетов. Ссылка: COUNT

truck_temp = FOREACH (GROUP truck_join ALL) 
             { 
                 GENERATE  COUNT(truck_join); 
             };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...