Hadoop pig: Регистрация при условии (ex. 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)  ;

Большое спасибо.
Филиппо

2 ответа

  1. На данный момент pig поддерживает только внутренние соединения,внешние соединения и полные соединения. второй пример соединения может быть реализован в 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;
    
  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);