2011-09-16 12 views
6

Tengo un trabajo de cerdo en qué necesito para filtrar los datos mediante la búsqueda de una palabra en ella,PIG: Filtro de una cadena sobre la base de una palabra

Aquí es el fragmento de

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 error está en la tercera línea, mientras que la búsqueda de C, también he intentado usar

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

también

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

Puede corregirme y ayudarme.

Gracias

Respuesta

15

MATCHES utiliza expresiones regulares. Deberías hacer ... MATCHES '.*WORD.*' en su lugar.

Estos son un ejemplo here buscando la palabra 'apache'.

+0

que es la sintaxis correcta, pero me pregunto por qué tenemos que agregar el '. *' Alrededor de la palabra. ¿Por qué '' LA PALABRA '' NO FUNCIONA? –

Cuestiones relacionadas