从piggybank使用CSVLoader时出错

时间:2013-10-24 18:28:56

标签: apache-pig

我正在尝试使用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所在的文件夹中执行此脚本。

3 个答案:

答案 0 :(得分:4)

我在尝试使用猪时遇到了类似的问题,虽然它是我的XMLLoader。对我有用的解决方案是将整个路径注册到jar,而不是相对路径。所以,如果jar位于/usr/lib/pig/piggybank.jar,则按如下方式运行代码:

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

答案 1 :(得分:0)

我查看了网址“http://svn.apache.org/repos/asf/pig/trunk/”中的代码并重新构建了jar文件。它现在工作正常。 :)

答案 2 :(得分:-1)

同样的工作正常 注册'piggybank.jar'; A =使用org.apache.pig.piggybank.storage.XMLLoader('property')as(x:chararray)加载'/xmlinput/demo.xml'; B = foreach A生成REPLACE(x,'[\ n]','')为x; C = foreach B生成REGEX_EXTRACT_ALL(x,'。(?:)([^<] )。(?:)([^<] )。* “); D = FOR CAC GENERATE FLATTEN(($ 0)); STORE D INTO'xmlcsvpig'使用org.apache.pig.piggybank.storage.CSVExcelStorage();