猪过滤掉不匹配
Posted
技术标签:
【中文标题】猪过滤掉不匹配【英文标题】:Pig Filter out NOT Matches 【发布时间】:2013-05-23 23:01:31 【问题描述】:我有一堆具有各种前缀的字符串,包括“未知:”我真的很想在我的 Pig 脚本中过滤掉所有以“未知:”开头的字符串,但它似乎不起作用。
simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown');
我尝试了一些其他的正则表达式排列,但似乎MATCHES
不能很好地与 NOT 配合使用。我错过了什么吗?
使用 Pig 0.9.2
【问题讨论】:
【参考方案1】:这是因为 matches
运算符的操作与 Java 的 String#matches
完全一样,即它尝试匹配整个字符串,而不仅仅是它的一部分(在你的例子中是前缀)。只需更新您的正则表达式以将整个字符串与您指定的前缀匹配,如下所示:
simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown.*');
【讨论】:
啊,谢谢。我也试过'^unknown*'
,但忘记了.
以上是关于猪过滤掉不匹配的主要内容,如果未能解决你的问题,请参考以下文章
在 xpath 中使用 [not] 检索与给定值不匹配的内容 (PLSQL)
单个单元格中的计数或总和(?)项目,与Excel中的列表中的条件匹配