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
我在这里做错了什么?
答案 0 :(得分:0)
您的JAR文件似乎没有注册。
使用进口:[, java.lang。,org.apache.pig.builtin。,org.apache.pig.impl.builtin。]
您是否在本地模式下运行Pig? pig -x local
?否则,您的文件是否放在HDFS上?
如果不是本地的,并且您正在从HDFS读取,请将JAR文件上传到那里,然后使用
REGISTER 'hdfs:///path/file.jar'