删除pig拉丁脚本中字符串中的标点符号(撇号除外)

unguejic  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(542)

我想对word文件执行单词计数,并删除除带撇号的字符串以外的标点符号。我尝试执行以下代码,但它给出了一个意外的错误“”。

word_file = LOAD '/user/username/text.txt' USING TextLoader AS(line:CHARARRAY);                                                                                                                                                                                                                                                                                                                                                         
    stop_file = LOAD '/user/username/stop_words.txt' USING TextLoader AS(stop:CHARARRAY);
    words = FOREACH word_file GENERATE FLATTEN(TOKENIZE(REPLACE(LOWER(TRIM(line)) ,'([\w\d'\s]+)', ''))) AS word;

有人能帮我吗?

4ktjp1zp

4ktjp1zp1#

http://pig.apache.org/docs/r0.17.0/func.html#replace 州
如果要替换字符串文字中的“[”等特殊字符,则必须在“regexp”中用双反斜杠(例如“[”)作为前缀对其进行转义。
如果你想排除任何带引号的字符串,我会这样做

word_file = LOAD 'input.txt' USING TextLoader AS(line:CHARARRAY);
words = FOREACH word_file GENERATE 
          FLATTEN(
            TOKENIZE(
              REPLACE(LOWER(TRIM(line)),'(\\\'[\\w\\d\\s]+\\\')', ''))) AS word;
STORE words into '...';

相关问题