2011-09-16 16 views
6

ho un lavoro maiale dove ho bisogno di filtrare i dati trovando una parola in esso,PIG: Filter una stringa in base ad una parola

Ecco il frammento di

A = LOAD '/home/user/filename' USING PigStorage(','); 
B = FOREACH A GENERATE $27,$38; 
C = FILTER B BY ($1 == '*Word*'); 
STORE C INTO '/home/user/out1' USING PigStorage(); 

la errore è nel 3 ° linea, mentre trovare C, ho anche provato con

 C = FILTER B BY $1 MATCHES '*WORD*' 

anche

 C = FILTER B BY $1 MATCHES '\\w+WORD\\w+' 

Potete correggermi e darmi una mano.

Grazie

risposta

15

MATCHES utilizza espressioni regolari. Dovresti invece fare ... MATCHES '.*WORD.*'.

Questi è un esempio here che trova la parola "apache".

+0

questa è la sintassi corretta, ma mi chiedo perché è necessario aggiungere il '. *' Attorno alla parola. Perché la parola 'MATCHES 'WORD'' non funziona? –

Problemi correlati