在PIG中使用JsonLoader

时间:2017-04-20 20:38:25

标签: hadoop apache-pig hadoop2 bigdata

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

我在这里做错了什么?

1 个答案:

答案 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'