hadoop pig: присоединиться к условию (например, tab1.COL1 LIKE (%tab2.col2%))
Как реализовать объединение по условию в PIG? Примеры, эквивалентные SQL:
select * from tab1, tab2 where instr(t1.col1,t2.col1 ) > 1 ;
select * from tab1, tab2 where f(t1.col1) =f(t2.col1) ;
Большое спасибо. Filippo
2 ответа
Попробуй это.
1.
Cross_Table = CROSS tab1, tab2;
Filter_Table = FILTER Cross_Table BY NOT(STARTSWITH(tab1::col1, tab2::col1));
2.
Join_Table = JOIN tab1 BY f(col1) INNER JOIN, tab2 BY f(col1);
На данный момент свинья поддерживает только Inner Joins,Outer Joins и Full Joins. Второй пример Join может быть реализован в Pig, а не другой. Ниже приведен пример.
tab1 = LOAD 'file1' using PigStorage('|') using (col1:chararray,col2:chararray);
tab2 = LOAD 'file2' using PigStorage('|') using (col1:chararray,col2:chararray);
result = JOIN tab1 by col1, tab2 by col1;