错误1066:无法打开别名的迭代器 - 猪

kno*_*one 8 apache-pig

刚开始猪; 尝试从文件加载数据并从此转储它.加载似乎是正确的,不会抛出任何错误.以下是查询:

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:float);

当我尝试执行转储时,它会抛出以下错误:

猪堆跟踪

错误1066:无法为别名打开迭代器NYSE org.apache.pig.impl.logicalLayer.FrontendException:错误1066:无法在org.apache.pig.PigServer.openIterator(PigServer.java:857)处打开别名NYSE的迭代器org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:682)位于org.apache.pig的org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303). tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)位于org.apache.pig.tools.grunt.Grunt.run的org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165) Grunt.java:69)org.apache.pig.Main.run(Main.java:490)atg.apache.pig.Main.main(Main.java:111)引起:java.io.IOException:Job在org.apache.pig.PigServer.openIterator(PigServer.java:849)中以异常状态FAILED终止

知道是什么导致了这个问题吗?

Nig*_*age 4

您是否正在运行pig 0.12.0或更早的jar hadoop 2.2,如果是这种情况,那么我设法通过重新编译pig jar来解决这个错误,这里是类型框 src上涉及的步骤的摘要debian

  1. 下载pig-0.12.0.tar.gz

  2. 解压jar包并设置权限

  3. 然后在解压后的目录中编译 src'ant clean jar -Dhadoopversion=23'

然后你需要在maven中的类路径上获取jar,例如在同一目录中

mvn install:install-file -Dfile=pig.jar -DgroupId={set a groupId}-
                 DartifactId={set a artifactId} -Dversion=1.0 -Dpackaging=jar  
Run Code Online (Sandbox Code Playgroud)

或者如果在 Eclipse 中则添加 jar 作为外部库/依赖项

pig 12我正在尝试在 a 中运行您的确切跟踪,hadoop 2.2.0并且上述步骤对我有用

更新
我在pig jira 上发布了我的问题,他们做出了回应。他们已经为hadoop2 pig-h2.jar编译了一个pig jar,这里http://search.maven.org/#artifactdetails|org.apache.pig|pig|0.12.0|jar
这个jar的maven标签是

  <dependency>
       <groupId>org.apache.pig</groupId>
       <artifactId>pig</artifactId>
      <classifier>h2</classifier>
      <version>0.12.0</version>
      <scope>provided</scope>
  </dependency>  
Run Code Online (Sandbox Code Playgroud)