Как извлечь отдельные из набора кортежей?

поэтому у меня есть следующая структура данных в свинье после описания:

    --------------------------------------------------------------------------------------------------------------------------------------------------------
| summed_hours_and_miles_by_driver     | group:int     | :bag{:tuple(driver_name:chararray)}             | total_hours:long     | total_miles:long     | 
--------------------------------------------------------------------------------------------------------------------------------------------------------
|                                      | 27            | {(Mark Lochbihler), ..., (Mark Lochbihler)}     | 220                  | 11006                | 
--------------------------------------------------------------------------------------------------------------------------------------------------------

Идея состоит в том, что имя водителя (Mark Lochbihler) повторяется несколько раз в наборе кортежей. Как я могу ограничить его одним именем, например, DISTINCT в SQL?


person Carolik    schedule 16.11.2016    source источник


Ответы (1)


Используйте Distinct, предполагая, что Ваше отношение примерно так

summed_hours_and_miles_by_driver = FOREACH grp GENERATE 
                                       group,
                                       org.apache.pig.builtin.Distinct(A.driver_name),
                                       total_hours,
                                       total_miles;
person VK_217    schedule 16.11.2016