gpt4 book ai didi

用 Pig Latin 解析 Xml

转载 作者:可可西里 更新时间:2023-11-01 14:41:32 26 4
gpt4 key购买 nike

我对 Hadoop 和 Pig 都很陌生。我已经能够完成许多简单的程序,但一个让我很费力的程序是在 XML 文件的一部分格式错误时处理 XML。

我可以使用 XMLLoader('tag') 从 xml 文件中获取所有标签,这很棒。但是,如果缺少一个格式正确的关闭标签, pig 将停在那个位置。例如

<tag>
</tag>
<tag>
</tag1>
<tag>
</tag>

这只会选取第一个有效标签。现在,我有了 JAQL 的经验并且能够忽略错误记录,以便应用程序选择第二个标记。

我的问题是:他们是一种使用 Pig 而不是 JAQL 来处理格式不佳的 XML 的方法吗?

最佳答案

我一直在查看 pig XMLLoader 代码,格式错误的标签似乎正在发生的事情是,加载程序从未注意到标签结束,并且无法注意到它已经输入了一个新的主标签.似乎没有办法使用 XMLLoader,因为它目前可以解决这个问题。

然而,修改 XMLLoader 使其以您希望的方式工作是可能的。可能通过更改 skipToTag 方法中的条件,以便如果它遇到指定开始标记的另一个实例,它会向前跳到该实例,忽略格式错误的标记。请记住,如果您嵌套了具有相同名称的标签(例如,address 作为 root,但 address 作为文档中较低的元素),这将变得困惑,因此它不是万无一失的。

然而,在大多数情况下,事先验证 XML 似乎是更好的选择,或者让预处理器仅将有效的 XML 提取到 pig 然后运行的文件中。

希望这对您有所帮助。

关于用 Pig Latin 解析 Xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com