在pig中使用jsonload

anauzrmj  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(261)
REGISTER 'hdfs:///user/flume/elephant-bird-hadoop-compat-4.1.jar';
REGISTER 'hdfs:///user/flume/elephant-bird-pig-4.1.jar';
REGISTER 'hdfs:///user/flume/elephant-bird-core-4.1.jar';
REGISTER 'hdfs:///user/flume/json-simple-1.1.1.jar';

load_tweets = LOAD '/user/flume/tweets/' USING 
com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;

即使在pig中注册了使用jsonloader所需的4个jar,我还是得到了以下错误。

[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not 
resolve com.twitter.elephantbird.pig.load.JsonLoader using imports: [, 
java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]

grunt> hadoop fs -ls /user/flume    
...... /user/flume/elephant-bird-hadoop-compat-4.1.jar
...... /user/flume/elephant-bird-pig-4.1.jar
...... /user/flume/elephant-bird-core-4.1.jar
...... /user/flume/json-simple-1.1.1.jar
...... /user/flume/tweets

我做错什么了?

dluptydi

dluptydi1#

看来你的jar文件没有注册。
使用导入:[,java.lang.,org.apache.pig.builtin.,org.apache.pig.impl.builtin.]
你在本地模式下跑步吗? pig -x local ? 否则,您的文件是否放在hdfs上?
如果不是本地的,并且您正在从hdfs读取,请将jar文件上传到那里,然后使用

REGISTER 'hdfs:///path/file.jar'

相关问题