То, что вы ищете, это "оператор устранения неоднозначности" . То, что вы хотите, это A::id
, а не A.id
.
A.id
говорит "есть отношение / bag A
и в его схеме есть столбец с именем id
"
A::id
говорит "есть запись из A
, в которой есть столбец с именем id
"
Итак, вы бы сделали:
A = load 'a.txt' as (id, a1);
B = load 'b.txt as (id, b1);
C = join A by id, B by id;
D = foreach C generate A::id,a1,b1;
dump D;
Грязная альтернатива:
Просто потому, что я ленивый, и неоднозначность становится действительно странной, когда вы начинаете делать несколько объединений одно за другим: использовать уникальные идентификаторы.
A = load 'a.txt' as (ida, a1);
B = load 'b.txt as (idb, b1);
C = join A by ida, B by idb;
D = foreach C generate ida,a1,b1;
dump D;