我只是用水槽流一些twitter数据并将其集群到HDFS中,现在我尝试将其加载到analysis.As的JsonLoader中,默认的JsonLoader函数无法加载这些数据,所以我在google中搜索一些可以加载此类数据的库,我找到了这个链接并按照那里的指令执行。
以下是结果
REGISTER '/home/hduser/Downloads/json-simple-1.1.1.jar';
2016-02-22 20:54:46,539 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS其他两个命令也一样。
现在,当我尝试使用以下命令加载数据时
load_tweets = LOAD '/TwitterData/' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;它向我展示了这个错误
2016-02-22 20:58:01,639 [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.]
Details at logfile: /home/hduser/pig-0.15.0/pig_1456153061619.log那么,如何正确地解决和加载这些问题呢?
注意:我的数据是关于最近发布的电影“死亡池”twitter数据的。
发布于 2016-02-22 15:55:01
您需要在jar下面注册猪,此jar包含您要访问的适当类。
elephant-bird-pig-4.1.jar
编辑了:以获得正确的步骤。
REGISTER '/home/hdfs/json-simple-1.1.jar';
REGISTER '/home/hdfs/elephant-bird-hadoop-compat-4.1.jar';
REGISTER '/home/hdfs/elephant-bird-pig-4.1.jar';
load_tweets = LOAD '/user/hdfs/twittes.txt' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;
dump load_tweets;我在本地集群上使用了上述步骤,并且运行良好,因此您需要在运行负载之前添加这些jars。
发布于 2016-03-17 06:09:28
您需要注册3个Jar文件,如博客所示。每个罐子都有它自己的重要性。
大象-鸟- Hadoop -compat-4.1.jar-用于处理Hadoop不兼容1.x和2.x之间的实用程序。
大象-鸟-猪-4.1.jar- Json装载机猪,它把每一个Json记录装入猪。
Json -simple-1.1.1.jar-- Java中的Json解析器之一
注册Jars之后,您可以通过下面的pig脚本加载tweet。
load_tweets = LOAD '/user/flume/tweets/' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;加载这些tweet之后,您可以通过转储它来查看它们。
dump load_tweetshttps://stackoverflow.com/questions/35557555
复制相似问题