apache-pig - 从字符串中删除标点符号,期望在 Pig 拉丁语脚本中使用撇号
问题描述
我想对单词文件执行字数统计并删除带有撇号的字符串的标点符号。我尝试执行以下代码,但它给出了一个意外的错误“”。
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;
谁能帮我解决这个问题?
解决方案
http://pig.apache.org/docs/r0.17.0/func.html#replace states
如果要替换字符串文字中的特殊字符,例如“[”,则必须在“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 '...';
推荐阅读
- python - 遍历一个 python 字典列表,其中可能包含更多的字典列表等
- vba - MS Access - 记录集 - 循环遍历表并发送电子邮件 - 得到“运行时错误 440:数组索引超出范围
- python - Python不使用sqlite3安装
- python - 如何在 python 中使用 mega api 通过共享 url 列出大型公共文件夹的内容
- azure - 使用共享访问签名时 Azure 创建文件 REST API 的授权请求标头
- java - OpenCV 应用程序 - Android 相机在 10 秒后崩溃
- python - 将 Pillow 字节图像转换为 numpy 数组非常慢
- javascript - 使用 svelte@next 创建 API
- angular - 协助创建模态弹出窗口
- javascript - 如何使用 TypeScript 在 React Native 中使用 forwardRef 和 FunctionComponent