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