刚刚开始猪;尝试从文件加载数据并从此转储它。加载似乎是正确的,不会抛出任何错误。以下是查询:
NYSE = LOAD'/root/Desktop/Works/NYSE-2000-2001.tsv'使用 PigStorage()AS(交换:chararray,stock_symbol:chararray, 日期:chararray,stock_price_open:float,stock_price_high:float, stock_price_low:float,stock_price_close:float,stock_volume:int, stock_price_adj_close:浮动);
当我尝试进行转储时,会抛出以下错误:
错误1066:无法为别名NYSE打开迭代器 org.apache.pig.impl.logicalLayer.FrontendException:错误1066:无法为别名NYSE打开迭代器 在org.apache.pig.PigServer.openIterator(PigServer.java:857) 在org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:682) 在org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303) 在org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189) 在org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165) 在org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69) 在org.apache.pig.Main.run(Main.java:490) 在org.apache.pig.Main.main(Main.java:111) 引起:java.io.IOException:作业因异常状态FAILED而终止 在org.apache.pig.PigServer.openIterator(PigServer.java:849)“
知道是什么导致了这个问题吗?
答案 0 :(得分:4)
如果是这种情况,您是否正在针对hadoop 2.2
运行猪0.12.0或更早的jar
我设法通过从src
重新编译猪罐来解决此错误,以下是debian
类型框所涉及步骤的摘要
下载pig-0.12.0.tar.gz
解压缩jar并设置权限
然后在解压缩的目录中用'ant clean jar -Dhadoopversion=23'
编译src
然后你需要在maven的类路径上获取jar,例如,在 同一目录
mvn install:install-file -Dfile=pig.jar -DgroupId={set a groupId}-
DartifactId={set a artifactId} -Dversion=1.0 -Dpackaging=jar
或者如果在eclipse中,则将jar添加为外部libary / dependency
我在pig 12
中尝试运行hadoop 2.2.0
,并且以上步骤为我工作了
UPDATE
我在猪jira上发布了我的问题,他们回应了。他们已经在这里为hadoop2 pig-h2.jar编了一个猪罐http://search.maven.org/#artifactdetails|org.apache.pig|pig|0.12.0|jar
这个罐子的maven标签是
<dependency> <groupId>org.apache.pig</groupId> <artifactId>pig</artifactId> <classifier>h2</classifier> <version>0.12.0</version> <scope>provided</scope> </dependency>
答案 1 :(得分:2)
这可能是由于猪版本从0.12开始变化。具体的变化是,Pig过去是允许的,并且自动忽略数据文件中的第一行,或者它会将该行解释为列名,在新版本的Pig中,这种允许性被删除了。解决方法是从输入文件中删除列名称,这应解决问题
卡皮尔西
答案 2 :(得分:0)
我也遇到了这个问题。然后我看到了这个链接:http://www.fanli7.net/a/JAVAbiancheng/ANT/20140325/441264.html
我只是将 pig版本从0.12.0替换为0.13.0
,问题就解决了。 (此处,我的 hadoop版本为2.3.0
)
答案 3 :(得分:0)
您可以将断点连接到类PigServer到方法存储()。
{{1}}
在js对象中有字段errorMessage,它可能包含问题描述