4

"unknown:" を含むさまざまなプレフィックスを持つ文字列がたくさんあります。Pig スクリプトで "unknown:" で始まるすべての文字列を除外したいのですが、うまくいかないようです。

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

正規表現の他の順列をいくつか試しましたが、MATCHESNOT ではうまく機能しないようです。何か不足していますか?

Pig 0.9.2 の使用

4

1 に答える 1

19

これは、matches演算子が Java のString#matchesとまったく同じように動作するためです。つまり、文字列の一部 (この場合はプレフィックス) だけでなく、文字列全体と一致しようとします。次のように、正規表現を更新して、文字列全体が指定したプレフィックスと一致するようにします。

simpleFilter = FILTER records BY NOT(mystr MATCHES '^unknown.*');
于 2013-05-23T23:38:18.957 に答える