gpt4 book ai didi

hadoop - 如何使XmlInputParser与自动关闭的XML标签一起使用?

转载 作者:行者123 更新时间:2023-12-02 21:43:35 25 4
gpt4 key购买 nike

我正在尝试使用MapReduce将SE data dump *中的XML文件加载到HDFS中。这些XML文件包含许多<row>元素(包含在顶级“类别”中),如下所示:

<badges>
<row Id="1" UserId="1" Name="Organizer" Date="2009-07-15T06:51:46.370" />
<row Id="2" UserId="3" Name="Organizer" Date="2009-07-15T06:51:46.387" />
<row Id="4" UserId="1" Name="Autobiographer" Date="2009-07-15T06:51:46.447" />
...
</badges>

我希望每个“行”都由单独的 map()函数处理,并配置了 org.apache.mahout.classifier.bayes.XmlInputFormat的开始和结束标签,如下所示:
Configuration config = new Configuration();
config.set(XmlInputFormat.START_TAG_KEY, "<row>");
config.set(XmlInputFormat.END_TAG_KEY, "</row>");

但是,由于 <row>元素是自动关闭的,因此无法解析XML文件。如何在不人为地“关闭”自关闭标签的情况下使它起作用?
  • 链接到SE博客,而不是直接链接到数据转储,以防止将来位置发生更改时出现死链接。
  • 最佳答案

    这是一个难看的骇客。如下更改START_TAG_KEYEND_TAG_KEY:

    config.set(XmlInputFormat.START_TAG_KEY, "<row");
    config.set(XmlInputFormat.END_TAG_KEY, "/>");

    “键”就像定界符一样被使用,可以接受任何字符串,而不仅仅是XML标记。这不是一个“干净”的解决方案,可能会停止将来的实现,但是现在可以完成工作。

    注意:我在发布问题的中途就知道了。事后看来,这似乎很明显,但是我还是决定继续写这篇文章,以便将来有人觉得它有用。

    关于hadoop - 如何使XmlInputParser与自动关闭的XML标签一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959142/

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