2016-09-22 3 views
0

Я совершенно новый для Свинья. Я хочу объединить несколько столбцов из двух отношений A и B, используя поле iid. Это кажется простым, но я не могу понять, как это сделать правильно, я пробовал присоединиться, но поскольку нет общего столбца, он ничего не дает.объединить несколько столбцов в свинье?

так вот мои данные:

A 
FullName Age CIN 

B  
evaluation productivty 

, и я хочу, чтобы мой выход, чтобы быть похожим на это:

FullName Age CIN Evaluation Productivty 

.. .. .. .. ..

Благодаря

+0

Чтобы объединить эти два листа данных, по крайней мере, вам понадобится один столбец, общий для этих листов данных. –

+0

, так что другого пути нет? –

ответ

0

Загрузите два отношения и создайте новое отношение со всеми столбцами. Если оба файла имеют одинаковое количество строк и полей s ограничены табуляцией. Вы можете использовать правильный тип данных на основе ваших данных.

A = LOAD 'data1.txt' USING PigStorage('\t') as (FullName:chararray,Age:int,CIN:int); 
B = LOAD 'data2.txt' USING PigStorage('\t') as (Evaluation:chararray,Productivity:chararray); 
C = FOREACH A GENERATE A.Fullname,A.Age,A.CIN,B.Evaluation,B.Productivity; 
DUMP C; 
0

Для соединения двух таблиц необходим общий ключ. Если вы хотите объединить два набора данных без ключа, вы можете использовать CROSS. Он вычисляет перекрестное произведение обоих наборов данных.

A = LOAD 'a.txt' AS (FullName, Age, CIN); 
B = LOAD 'b.txt' AS (evaluation, productivity); 
C = CROSS A,B; 

Если вы хотите присоединиться к построчно и предположим, что данные в порядке, в обоих файлах, вы можете использовать UniqueID как хак (рис 0,14, а затем только)

A = LOAD 'a.txt' AS (FullName, Age, CIN); 
B = LOAD 'b.txt' AS (evaluation, productivity); 
A1 = FOREACH A GENERATE *, UniqueID(FullName) AS id; 
B1 = FOREACH B GENERATE *, UniqueID(evaluation) AS id; 
C = JOIN A1 BY id, B1 BY id; 
D = FOREACH C GENERATE FullName, Age, CIN, evaluation, productivity; 

Это полностью зависит от реализации UniqueID и может не получать желаемые результаты, если логические изменения в следующих версиях.