猪过滤掉不匹配

时间:2013-05-23 23:01:31

标签: hadoop apache-pig

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

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

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

使用Pig 0.9.2

1 个答案:

答案 0 :(得分:15)

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

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