在Apache Pig中使用流式xml加载器时出现问题

时间:2014-04-15 19:44:15

标签: apache-pig

我是Pig的新手,并且在尝试加载xml文件时遇到了麻烦。它似乎无法导入或解析Streaming Xml Loader。我需要正确配置或导入解析器吗?

       data = LOAD './data/small.xml'
       USING org.apache.pig.piggybank.storage.StreamingXMLLoader(
          'Document',
          'test'
       ) AS (
           test:    {(attr:map[], content:chararray)}
       );

这就是错误

org.apache.pig.PigServer - exception during parsing: Error during parsing. Could not resolve org.apache.pig.piggybank.storage.StreamingXMLLoader using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]
Failed to parse: Pig script failed to parse: 

更新:我注册了piggybank,现在它可以解析XMLLoader,但是找不到StreamingXMLLoader

ERROR 1070: Could not resolve org.apache.pig.piggybank.storage.StreamingXMLLoader using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]

4 个答案:

答案 0 :(得分:1)

看起来像流式xml加载器只能在Mortar的Pig版本上使用。

以下是迫击炮的回复:

  

StreamingXMLLoader仅适用于Mortar的Pig版本   那一刻,虽然我们希望在未来做出贡献。对于   在Mortar之外使用Pig,XmlLoader可能是你最好的选择。

答案 1 :(得分:0)

由于您正在使用piggybank中的StreamingXMLLoader UDF,是的,您需要在脚本开头导入。

e.g。

REGISTER piggybank.jar;

答案 2 :(得分:0)

即使我有类似的问题。我首先通过反编译工具jd-gui验证了StreamingXMLLoader类的存在。您可以在提供的屏幕截图中找到相同的内容。

此后我按照这个例子: http://www.sppavankumar.com/xmlloader-for-pig-big-data/

它对我有用。enter image description here

答案 3 :(得分:0)

转到pig lib并检查Apache-Pig-XMLLoader-master 如果没有下载并放入你的猪lib位置

我的是:

的/ usr /本地/ hadoop的/猪/ LIB / Apache的猪XMLLoader主