1

我正在尝试使用 Piggybank 的 CSVLoader。下面是我的代码的前两行:

  register 'piggybank.jar' ;
  define CSVLoader org.apache.pig.piggybank.storage.CSVLoader();

它抛出以下错误:

  2013-10-24 14:26:51,427 [main] INFO         
  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file    
  system at: file:///
  2013-10-24 14:26:52,029 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve org.apache.pig.piggybank.storage.CSVLoader using imports: [, org.apache.pig.builtin., org.apache.pig.impl.builtin.]

有人可以告诉我发生了什么事吗?我正在从我的 piggybank.jar 所在的同一文件夹中执行此脚本。

4

3 回答 3

4

我在试验 pig 时遇到了类似的问题,尽管它对我来说是 XMLLoader。对我有用的解决方案是注册 jar 的整个路径,而不是相对路径。所以如果 jar 位于 /usr/lib/pig/piggybank.jar 运行代码如下:

register '/usr/lib/pig/piggybank.jar' ;
  define CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
于 2013-10-24T19:26:56.710 回答
0

我从 url ' http://svn.apache.org/repos/asf/pig/trunk/ '中检查了代码并重新构建了 jar 文件。它现在工作正常。:)

于 2013-10-24T19:32:17.940 回答
-1

同样工作正常 register 'piggybank.jar' ;A = 使用 org.apache.pig.piggybank.storage.XMLLoader('property') 作为 (x:chararray) 加载'/xmlinput/demo.xml';B = foreach A 生成 REPLACE(x,'[\n]','') as x; C = foreach B 生成 REGEX_EXTRACT_ALL(x,'. (?:)([^<] ). (?:)([^<] ).*'); D =FOREACH C 生成展平 (($0)); 使用 org.apache.pig.piggybank.storage.CSVExcelStorage() 将 D 存储到“xmlcsvpig”中;

于 2016-04-09T07:52:28.657 回答