3

長くて複雑な名前のファイルを豚にロードする必要があります。

dealnews-2011-04-01T12:00:00:00.211-02:00.csv

豚は不平を言った:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2999: Unexpected internal error. java.net.URISyntaxException: Relative path in absolute URI:

誰が何が問題なのか知っていますか?ありがとう。

4

2 に答える 2

2

それから URI を形成している場合、: は予約文字です。

考えてみてください: file://a:b ... これは FTP ログインと見なされます。

あなたのエラーメッセージは、文字列が解析された後に残っているものが相対パスであることを訴えているようです(最後のコロンの後の00.csvだと思います)。明らかにファイル名全体ではありません。

URI を形成する前に、ファイル名の予約文字をエスケープする必要があります。コマンドラインでこれを行うことができます。たとえば、次のようにします。sed -e 's/:/%3A/g'

ファイル名のコロンを変換します。

または、「;?:@&=+,$」のいずれかを使用するディレクトリ内のファイルの名前を変更できます。

于 2011-04-20T18:03:07.110 に答える
0

まったく同じケースではありませんが、次のようになりました。

ERROR 2999: Unexpected internal error. java.net.URISyntaxException cannot be cast to java.lang.Error
java.lang.ClassCastException: java.net.URISyntaxException cannot be cast to java.lang.Error

ロードしようとしたすべての場合、問題は、PIG_CONF_DIRenv変数が存在しないフォルダーを指していることでした。.bash_profileで、有効なcore-site.xmlとmapred-site.xmlを含むフォルダーにリセットしました。これで、すべてが正常になりました。

export PIG_CONF_DIR=/my_good_folder
于 2012-06-24T12:02:36.163 に答える