我是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.]
答案 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/
它对我有用。
答案 3 :(得分:0)
转到pig lib并检查Apache-Pig-XMLLoader-master 如果没有下载并放入你的猪lib位置
我的是:的/ usr /本地/ hadoop的/猪/ LIB / Apache的猪XMLLoader主