1

谁能帮我弄清楚为什么我在使用 REGISTER 注册 jar 文件“象鸟”以加载 json 数据时出错:

我在猪 0.16 的本地模式下工作并得到错误:/home/shanky/Downloads/elephant-bird-hadoop-compat-4.1.jar' 不存在。/home/shanky/Downloads/elephant-bird-pig-4.1.jar' 不存在。

加载json数据的代码:

REGISTER '/home/shanky/elephant-bird-hadoop-compat-4.1.jar';
REGISTER '/home/shanky/Downloads/elephant-bird-pig-4.1.jar';
REGISTER '/home/shanky/Downloads/json-simple-1.1.1.jar';
load_tweets = LOAD '/home/shanky/Downloads/data.json' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;
dump load_tweets;

我尝试通过删除引号并放置 hdfs:// 来替换 REGISTER 语句,但对我没有任何作用。

4

1 回答 1

1

每个猪文档( https://pig.apache.org/docs/r0.16.0/basic.html#register-jar )中不应包含引号,但您的语法确实对我有用(我使用的是 0.12 .0-cdh5.12.0 虽然)。

既然你说你在没有引号的情况下尝试过,一些想法:

*您提到尝试添加 hdfs://,这些对 hdfs 的依赖是否有任何机会?看起来不像,因为它们在路径中有下载,但如果它们是,您将无法找到它们在本地模式下运行 pig。如果它们在您的本地文件系统上,则无论您是否在本地运行它,您都应该能够使用您拥有的路径访问它们。

*文件真的存在吗?权限是否正确?等等。

*假设您现在只想解决这个问题,您是否尝试过任何其他注册 jar 的方法,例如 -Dpig.additional.jars.uris=/home/shanky/elephant-bird-hadoop-compat- 4.1.jar,/home/shanky/Downloads/elephant-bird-pig-4.1.jar

于 2018-02-23T18:56:12.173 回答