在 apache pig 中解析 XML 和 HTML

Posted

技术标签:

【中文标题】在 apache pig 中解析 XML 和 HTML【英文标题】:Parse XML and HTML in apache pig 【发布时间】:2013-03-04 09:42:26 【问题描述】:

我们如何使用 apache pig 运行 XML。我尝试了 piggybank.storage.XMLLoader 函数,但它对我不起作用。我只在本地模式下运行猪作业。没有错误,但它没有运行。

有没有办法在 apache pig 中解析 html 页面。

请帮帮我。

提前致谢

【问题讨论】:

一般来说,用 XML 解释器解析 HTML 无论如何都不起作用。只有非常、非常、非常、非常少的 HTML 文档是格式良好的 XML。甚至大多数 HTML5 都不是。这些是不同的规格/格式。 【参考方案1】:

您需要使用带有参数的 org.apache.pig.piggybank.storage.XMLLoader()。 和 Xpath 也是如此。我发现this 有帮助。

【讨论】:

【参考方案2】:

请尝试在 MR 模式下运行脚本。因为许多功能/操作仅在 MR 模式下才能正常工作。

【讨论】:

【参考方案3】:

试试这个代码:

register <PIG_HOME>/contrib/piggybank/java/piggybank.jar; 
A= LOAD '/xmlfile' USING org.apache.pig.piggybank.storage.XMLLoader('<XML_tag>');

我所说的 pig MR 模式是指在 MR 模式下而不是在本地模式下运行 pig(即 pig -x local)。

希望对你有帮助。

【讨论】:

谢谢 gargi,你是对的。我没有在本地模式下运行 pig 脚本。我有 4 个节点集群(3+1)用于测试。只有我试过相同的代码。它可以工作,但是我们如何在给定的 XML 文件中获取属性和嵌套节点。 据我所知,在这种情况下,我们将不得不使用自定义解析器。

以上是关于在 apache pig 中解析 XML 和 HTML的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pig 解析 XML 文件

无法使用导入解析 org.apache.hcatalog.pig.hcatloader

使用 UDF 在 Pig 中解析 XML 文件

使用 Piggybank 使用 Pig 进行 XML 解析

如何使用 pig 脚本解析 xml 元素节点?

Pig - 解析 XML 文件