少なくとも pig 0.9.1 以降では、Star ExpressionsまたはProject-Range Expressions のいずれかを使用して、タプルから複数のフィールドを選択できます。詳細については、Pig Latin 0.15.0、式の章を参照してください。
これは、理解を深めるために作成した私の例です。
-- A: {id: long, f1: int, f2: int, f3: int, f4: int}
-- B: {id: long, f5: int}
AとBを結合してAのフィールドだけを選択しよう
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}
また
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}
スター式を使用してすべてのフィールドを選択する
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}
プロジェクト範囲式を使用して、すべての個別のフィールド (B::id フィールドを除く) を選択する
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}
1 つのリレーションに数十のフィールドがあり、別のリレーションでは対になっているだけの場合に、非常に便利な場合があります。