带有复杂名称的加载文件的Pig问题

时间:2011-04-20 17:53:10

标签: apache-pig

我需要在猪中加载文件,其名称长而复杂:

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:

谁知道问题是什么?感谢。

2 个答案:

答案 0 :(得分:2)

如果它正在形成一个URI,则:是一个保留字符。

考虑一下:file:// a:b ...这将被视为FTP登录。

您的错误消息似乎抱怨解析字符串后剩下的是相对路径(我猜最后一个冒号后的00.csv)。显然不再是整个文件名。

在形成URI之前,您需要转义文件名中的所有保留字符。 您可以在命令行上执行此操作,例如: ls | sed -e's /:/%3A / g'

转换文件名中的冒号。

或者你可以重命名目录中任何使用“;?:@& = +,$”的文件

答案 1 :(得分: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_DIR env变量指向一个不存在的文件夹。我们已将.bash_profile中的它重置为具有有效core-site.xml和mapred-site.xml的文件夹,现在一切都很好。

export PIG_CONF_DIR=/my_good_folder