从猪拉丁字母中的字符串期望撇号中删除标点符号

问题描述 投票:0回答:1

我想对单词文件进行单词计数,并删除带有撇号的字符串的标点符号。我尝试执行以下代码,但是由于出现意外的错误“”。

    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;                                                                                                                                                                                                                                                                                                                                        

有人可以帮我吗?

apache-pig word-count
1个回答
0
投票

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 '...';
© www.soinside.com 2019 - 2024. All rights reserved.