2

私は、必要に応じてセミコロンで区切られ、ランダムな順序で、関心のある文字列を含む 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 で、または必要な文字列を一致させるため)?

乾杯

4

2 に答える 2