PIG:如何过滤具有特殊字符的字段
PIG: how filter a field with special characteres
我需要过滤重音单词列表,因为是葡萄牙语。
负载正在工作:
arq = LOAD '/user/cloudera/file1.5.txt' USING PigStorage(';') as
(time:chararray,
cd_rastreio:chararray,
hora:chararray,
detalhe:chararray,
local:chararray,
destino:chararray);
我需要制作这样的过滤器:
[...]
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')
但是它returns没有线条,我相信是因为“ã”。
我能做什么?
我可以使用您上面描述的过滤器(在 Pig 版本 0.16 中),例如:
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)
您能否在 HDFS 中检查您的文件以确保它仍然具有字符 ã
并且没有被之前的进程擦除?
无论如何,您可以编写一个正则表达式并使用 MATCHES
来过滤而不使用 ã
字符,例如,用 .
代替 ã
:
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)
我需要过滤重音单词列表,因为是葡萄牙语。
负载正在工作:
arq = LOAD '/user/cloudera/file1.5.txt' USING PigStorage(';') as
(time:chararray,
cd_rastreio:chararray,
hora:chararray,
detalhe:chararray,
local:chararray,
destino:chararray);
我需要制作这样的过滤器:
[...]
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')
但是它returns没有线条,我相信是因为“ã”。
我能做什么?
我可以使用您上面描述的过滤器(在 Pig 版本 0.16 中),例如:
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)
您能否在 HDFS 中检查您的文件以确保它仍然具有字符 ã
并且没有被之前的进程擦除?
无论如何,您可以编写一个正则表达式并使用 MATCHES
来过滤而不使用 ã
字符,例如,用 .
代替 ã
:
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)