Ответ 1
Что вы ищете, это "Disambiguate Operator" . Вы хотите A::id
, а не A.id
.
A.id
говорит: "существует отношение/сумка 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;