私は、必要に応じてセミコロンで区切られ、ランダムな順序で、関心のある文字列を含む Pig のいくつかのデータを使用しています。
test=12345;foo=bar
test=12345
foo=bar;test=12345
次のコードは、テスト「キー」の文字列の値を抽出する必要があります。
blah =
FOREACH
data
GENERATE
FLATTEN (
EXTRACT (
str_of_interest,
'test=(\\S+);?'
)
)
AS (
test: chararray
)
;
ただし、コードを実行すると、次のエラーが発生します。
<line 46, column 0> mismatched character '<EOF>' expecting '''
2013-04-16 04:46:05,245 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 46, column 0> mismatched character '<EOF>' expecting '''
最初は正規表現エスケープ構文をオフにしていると思っていましたが、それは問題ではないようです。Google 検索から得られる唯一の情報は、最近修正されたように見えるバグ レポートですが、それは私が実行している Amazon EMR クラスターの問題です (この分析のためにアドホックにスピンアップしました)。
バグ レポートや他の場所で提案されているように、セミコロンを対応する Unicode (\u003B) に置き換えると、同じエラーが発生します。
私は気が狂っている可能性があり、これは構文の問題である可能性があるため、誰かが私を正しい方向に向けるか、これが既存の問題であることを確認できることを願っています. 後者の場合、回避策はありますか (Pig で、または必要な文字列を一致させるため)?
乾杯