【发布时间】:2015-10-25 03:10:12
【问题描述】:
我正在尝试在 Pig 中使用 XMLLoader(Piggybank) 加载 XML 文件,但我收到一条错误消息,提示“无法打开别名 B 的迭代器”。 我写了以下代码:
REGISTER /home/hdfs/spig/trunk/contrib/piggybank/java/piggybank.jar
A = LOAD '/core-site.xml'using org.apache.pig.piggybank.storage.XMLLoader('property') as (x:chararray);
B = foreach A GENERATE FLATTEN(REGEX_EXTRACT_ALL(x,'<property>\\s*<name>(.*) </name>\\s*<value>(.*)</value>\\s*<description>(.*)</description>\\s*</property>'));
dump B;
以下是日志文件:
猪栈跟踪
错误 1066:无法打开别名 A 的迭代器
org.apache.pig.impl.logicalLayer.FrontendException:错误 1066:无法 在以下位置打开别名 A 的迭代器 org.apache.pig.PigServer.openIterator(PigServer.java:935) 在 org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:754) 在 org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:376) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:230) 在 org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:205) 在 org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:81) 在 org.apache.pig.Main.run(Main.java:631) 在 org.apache.pig.Main.main(Main.java:177) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.apache.hadoop.util.RunJar.run(RunJar.java:221) 在 org.apache.hadoop.util.RunJar.main(RunJar.java:136) 原因: java.io.IOException:作业以异常状态 FAILED 终止 org.apache.pig.PigServer.openIterator(PigServer.java:927) ... 13 更多
【问题讨论】:
-
你能发布完整的错误吗?
-
@PradeepGollakota 我已经添加了日志文件。
-
我试图转储 A ,作为响应,我得到了日志中显示的上述错误。
-
不确定这里的答案是否足够,但也许这会有所帮助:ERROR 1066: Unable to open iterator for alias 这里是generic solution。
标签: hadoop apache-pig