Mindestens ab Schwein 0.9.1 können Sie entweder Star-Ausdrücke o Projektbereich-Ausdrücke um mehrere Felder aus einem Tupel auszuwählen. Lesen Pig Latin 0.15.0, Kapitel Ausdrücke für Details.
Hier ist mein Beispiel, das ich nur gemacht habe, damit Sie es verstehen.
-- A: {id: long, f1: int, f2: int, f3: int, f4: int}
-- B: {id: long, f5: int}
Verknüpfen wir A und B und wählen wir nur die Felder von A aus
AB = FOREACH (JOIN A BY id, B by id) GENERATE $0..$4;
--AB: {A::id: long, A::f1: int, A::f2: int, A::f3: int, A::f4: int}
o
BA = FOREACH (JOIN B BY id, A by id) GENERATE $2..;
--BA: {A::id: long, A::f1: int, A::f2: int, A::f3: int, A::f4: int}
Auswahl aller Felder mit Star-Ausdruck
AB = FOREACH (JOIN A BY id, B by id) GENERATE *;
--AB: {A::id: long, A::f1: int, A::f2: int, A::f3: int, A::f4: int, B::id: long, B::f5: int}
Auswahl aller eindeutigen Felder (ohne das Feld B::id) mit dem Ausdruck Project-range
AB = FOREACH (JOIN A BY id, B by id) GENERATE $0..$4, f5;
--AB: {A::id: long, A::f1: int, A::f2: int, A::f3: int, A::f4: int, B::f5: int}
Manchmal ist es wirklich nützlich, wenn Sie in einer Beziehung Dutzende von Feldern haben und in einer anderen nur ein paar.