无法删除Pig中的特殊字符

时间:2014-09-19 17:17:31

标签: apache-pig

我有一个文本文件,我想加载到我的猪引擎, 文本文件中的名称在单独的行中,而数据却有错误......特殊字符....这样的东西:

Ja@@$s000on   
J@@a%^ke
T!!ina
Mel@ani

我想使用REGEX从所有名称中删除特殊字符....我发现在猪中完成工作的一种方式,最后输出为......

Jason
Jake
Tina
Melani

有人可以告诉我将在Pig工作的正则表达式。 同时编写将执行此操作的命令,因为我无法使用 REGEX_EXTRACT REGEX_EXTRACT_ALL 功能。
还有人可以解释在定义正则表达式之后我们传递给此函数的数字1的意义是什么。

任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:8)

您可以使用REPLACE和RegEx解决此问题。

input.txt  
Ja@@$s000on  
J@@a%^ke T!!ina Mel@ani  

PigScript:
A = LOAD 'input.txt' as line;  
B = FOREACH A GENERATE REPLACE(line,'([^a-zA-Z\\s]+)','');  
dump B;  

Output:  
(Jason)  
(Jake Tina Melani)  

答案 1 :(得分:0)

There is no way to escape these characters when they are part of the values in a tuple, bag, or map, but there is no problem whatsoever in loading these characters in when part of a string. Just specify that field as type chararray

请查看here