刚开始的Pig;尝试从文件中加载数据并从此转储。加载似乎是正确的,没有抛出错误。以下是查询:
nyse=load'/root/desktop/works/nyse-2000-2001.tsv',使用pigstorage()作为(exchange:chararray,库存_symbol:chararray, date:chararray,股价_open:float,股价_high:float,股价_low:float,股价_close:float,库存_volume:int,股价调整_close:float);
当我尝试转储时,它会抛出以下错误:
清管器堆放痕迹
错误1066:无法打开别名nyse org.apache.pig.impl.logicalayer.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:作业终止,异常状态为org.apache.pig.pigserver.openiterator(pigserver)失败。java:849)"
知道是什么导致了这个问题吗?
4条答案
按热度按时间56lgkhnf1#
这可能是由于清管器版本从0.12开始发生了变化。具体的变化是pig过去是允许的,并且自动忽略数据文件中的第一行,否则它会将该行解释为列名,在新版本的pig中,这个允许被删除。解决方法是从输入文件中删除列名,这应该可以解决问题
卡皮尔
62o28rlo2#
我也遇到了这个问题。然后我看到这个链接:http://www.fanli7.net/a/javabiancheng/ant/20140325/441264.html
我只是将pig版本从0.12.0替换为
0.13.0
问题解决了(这里,我的hadoop版本是2.3.0
)h7wcgrx33#
可以将断点放在类pigserver到方法store()上。
在js对象中有字段errormessage,它可能包含问题的描述
4zcjmb1e4#
你是在用pig0.12.0或更早版本的jar来运行吗
hadoop 2.2
,如果是这种情况,那么我通过从src
,以下是有关debian
类型框下载
pig-0.12.0.tar.gz
解包jar并设置权限然后在解包目录中编译src
'ant clean jar -Dhadoopversion=23'
然后需要在maven的类路径上获取jar,例如,在同一个目录中或者,如果在eclipse中,那么添加jar作为外部库/依赖项
我正试图找到你的确切踪迹
pig 12
在一个hadoop 2.2.0
以上步骤对我很有效更新
我把我的问题贴在Pig吉拉上,他们回复了。他们已经在这里为hadoop2pig-h2.jar编译了一个pig jarhttp://search.maven.org/#artifactdetails|org.apache.pig | pig | 0.12.0 | jar
这个jar的maven标签是