elephant bird在pig 0.16中加载json数据时不存在错误

t3psigkw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(332)

有人能帮我弄清楚为什么在使用register注册jar文件'elephant bird'来加载json数据时出错:
我在pig0.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语句,但没有任何效果。

ukxgm1gy

ukxgm1gy1#

报价不应包含在pig文件中(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

相关问题