猪过滤掉不匹配

New*_*ang 4 hadoop apache-pig

我有一堆字符串,有各种前缀,包括"unknown:"我真的想在我的Pig脚本中过滤掉以"unknown:"开头的所有字符串,但它似乎不起作用.

simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown');

我已经尝试了一些正则表达式的其他排列,但看起来MATCHES只是不适用于NOT.我错过了什么吗?

使用Pig 0.9.2

jko*_*acs 16

这是因为matches操作符的操作与Java完全相同String#matches,即它尝试匹配整个String而不仅仅是它的一部分(在你的情况下是前缀).只需更新正则表达式,使整个字符串与指定的前缀匹配,如下所示:

simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown.*');
Run Code Online (Sandbox Code Playgroud)