【问题标题】:Tool for parsing XML in Hadoop在 Hadoop 中解析 XML 的工具
【发布时间】:2017-05-08 05:10:54
【问题描述】:

我想知道在 hadoop 环境中是否有任何工具可以用来解析 XML 文件。我知道使用 map reduce 如果没有可用的工具,我们可以解析 XML 文件,而不是在哪种语言 scala、java 或 pig 中解析更好? 请帮忙。

【问题讨论】:

    标签: xml scala hadoop apache-pig bigdata


    【解决方案1】:

    hadoop 环境通常具有可用的 Java。所以我会使用“Java Architecture for XML Binding”或 JAXB。

    它相对容易使用,并且有包含主要方法的开发策略:

    • 您有其他人定义的 XML,您想在 Java 中访问。
    • 您有想要用 XML 表示的 Java 数据结构。

    它有很多功能,但除非你需要它们,否则不要担心添加所有的花里胡哨。它也相当快。

    You can find the learning path for it here.

    Scala 也是一个很好的选择,但它的学习曲线有点高(如果您已经了解 Java 并且接触过基于 Lambda 的语言,那么学习曲线不会那么高)。文档是合理的,但有时它只是缺少可用于 Java 的文档。

    对于没有使用 Scala 交付记录的团队,Scala 将是我的第二选择。这并不难,而且对于某些问题,Scala 要容易得多,但是如果没有一点 Scala 经验,人们往往会利用非 Scala 方法来解决 Scala 中的问题。

    Pig 是一种我经验有限的语言,所以我将保留评论。

    【讨论】:

    • 如果 xml 文件大小比使用 JAXB 解析容易吗?
    • 有什么工具可以解析xml吗?
    • JAXB 是解析 Java 的工具。它可以处理大小合理的 XML 文件;但是,如果您真的在谈论大量 XML 文件,您可能希望使用 Java XML 解析工具的一个较小组件,称为 SAX。 SAX 提供的主要优化是,当您的 XML 太大而无法容纳程序的内存时,您可以更轻松地跳过您不关心的 XML 部分。这种跳过可以在两个工具包中完成,但是 SAX 是如此原始,以至于它更容易弯曲以处理奇怪的场景(至少对我而言);但如果这样做,请将其视为下推解析器的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2013-02-05
    • 1970-01-01
    相关资源
    最近更新 更多