gpt4 book ai didi

xml - 如何将xml文件加载到Hive中

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

我在处理 Hive 表时遇到以下问题。我的 HDFS 中有超过 10 亿个 xml 文件。我想要做的是,每个 xml 文件都有 4 个不同的部分。现在我想为每个 xml 文件拆分并加载每个表中的每个部分

示例:

            <?xml version='1.0' encoding='iso-8859-1'?>

<section1>
<id> 1233222 </id>
// having lot of xml tages
</section1>

<section2>
// having lot of xml tages
</section2>

<section3>
// having lot of xml tages
</section3>

<section4>
// having lot of xml tages
</section4>

</xml>

我有四张 table

        section1Table

id section1 // fields

section2Table

id section2

section3Table

id section3

section4Table

id section4

现在我想将数据拆分并加载到每个表中。

我怎样才能做到这一点。谁能帮帮我

谢谢

更新

我试过以下方法

CREATE EXTERNAL TABLE test(name STRING) LOCATION '/user/sornalingam/zipped/output/Tagged/t1';\


SELECT xpath (name, '//section1') FROM test LIMIT 1 ;

但是我得到了以下错误

java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"name":"<?xml version='1.0' encoding='iso-8859-1'?>"}

最佳答案

您有多种选择:

  • 将 XML 加载到包含字符串列的 Hive 表中,每行一个(例如 CREATE TABLE xmlfiles (id int, xmlfile string)。然后使用 XPath UDF 处理 XML .
  • 既然您知道所需内容的 XPath(例如 //section1),请按照 this tutorial 后半部分的说明进行操作。通过 XPath 直接摄取到 Hive。
  • 按照描述将您的 XML 映射到 Avro here因为 SerDe存在用于无缝 Avro 到 Hive 映射。
  • 使用 XPath 将您的数据存储在 HDFS 中的常规文本文件中,然后将其提取到 Hive 中。

这取决于您的经验水平和对这些方法的适应程度。

关于xml - 如何将xml文件加载到Hive中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20852166/

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