我需要在具有长而复杂的名称的猪中加载文件:
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:
有谁知道有什么问题?谢谢。
我需要在具有长而复杂的名称的猪中加载文件:
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:
有谁知道有什么问题?谢谢。
如果它从中形成一个 URI,则 : 是一个保留字符。
想一想:file://a:b ...这将被视为 FTP 登录。
您的错误消息似乎在抱怨解析字符串后留下的是相对路径(我猜是最后一个冒号后的 00.csv )。显然不再是整个文件名。
在形成 URI 之前,您需要转义文件名中的任何保留字符。您可以在命令行上执行此操作,例如: ls | sed -e 's/:/%3A/g'
转换文件名中的冒号。
或者您可以重命名目录中使用任何“;?:@&=+,$”的任何文件
不完全相同的情况,但我们得到:
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 环境变量指向一个不存在的文件夹。我们已将 .bash_profile 中的它重置为具有有效 core-site.xml 和 mapred-site.xml 的文件夹,现在一切都很好。
export PIG_CONF_DIR=/my_good_folder