I need filter a list of accented words, because is Portuguese.
The load is working:
arq = LOAD '/user/cloudera/file1.5.txt' USING PigStorage(';') as
(time:chararray,
cd_rastreio:chararray,
hora:chararray,
detalhe:chararray,
local:chararray,
destino:chararray);
I need make a filter like this:
[...]
detalhe IN (
'A entrega não pode ser efetuada - Carteiro não atendido',
'A entrega não pode ser efetuada - Cliente desconhecido no local',
'A entrega não pode ser efetuada - Cliente mudou-se')
But it returns no lines, I believe is because of "ã".
What Could I do?
I am able to use the filter you described above (in Pig version 0.16), for example:
B = FILTER arq BY detalhe IN (
'A entrega não pode ser efetuada - Carteiro não atendido',
'A entrega não pode ser efetuada - Cliente desconhecido no local',
'A entrega não pode ser efetuada - Cliente mudou-se');
dump
(A entrega não pode ser efetuada - Carteiro não atendido)
(A entrega não pode ser efetuada - Cliente desconhecido no local)
(A entrega não pode ser efetuada - Cliente mudou-se)
Can you inspect your file in HDFS to make sure it still has the character ã
and hasn't been scrubbed by a previous process?
Regardless, you can write a regex expression and use MATCHES
to filter without using the ã
character, for example, with .
in place of ã
:
B = FILTER arq BY detalhe MATCHES
'A entrega n.o pode ser efetuada - (Carteiro n.o atendido|Cliente desconhecido no local|Cliente mudou-se)';
dump
(A entrega não pode ser efetuada - Carteiro não atendido)
(A entrega não pode ser efetuada - Cliente desconhecido no local)
(A entrega não pode ser efetuada - Cliente mudou-se)