xml - Hive XML Serde-解析带换行符的字符串

标签 xml hadoop hive hiveql hive-serde

我正在使用hivexmlserde-1.0.5.3将XML数据解析为Hive表。我在尝试解析其中包含换行符的标签时遇到了一个问题,如下所示:

<item>
    <itemid>1</itemid>
    <contents subscript = "n">
        <name>Item1</name>
        <details>Line 1 with a line break. 
        Line 2 here, which is not being read.</details>
    </contents>
</item>

当我尝试使用以下内容解析时,这仅读取第一行:
    DROP TABLE IF EXISTS db.tbl;
    CREATE EXTERNAL TABLE db.tbl  (
      ID STRING COMMENT '',
      CONTENTS ARRAY<STRUCT<
      subscript:STRING,
      contents:struct<Name:STRING,Details:STRING>>> COMMENT '') COMMENT ''
        ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
        WITH SERDEPROPERTIES (
        "column.xpath.OB_CASE_ID"="/item/itemID/text()",
        "column.xpath.HISTORICAL_INTERACTION"= "/item/contents")
        STORED AS
        INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
        OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
        LOCATION '${stagingFolderPath}'
        TBLPROPERTIES ("xmlinput.start"="<item>","xmlinput.end"="</item>");

是否有我做错的事情,或者有更好的方法来做到这一点?任何帮助将不胜感激。

TIA

最佳答案

我找不到一种方法来解析带有换行符的数据。但是我可以从数据中删除换行符(或者可以用自己的标记替换它)。这样,我就能按预期解析数据。希望这可以帮助。干杯。

关于xml - Hive XML Serde-解析带换行符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46336468/

相关文章:

用于分布式计算的 Java 8 MapReduce

hadoop - 如何使用自定义字段分隔符导出配置单元查询

hadoop - 使用 sqoop 将数据从 Hive 导出到 rdbms 时如何处理主键

hadoop - 如何在 Azkaban 中使用 Hive 作业?

apache-spark - 如果不使用Map Reduce,Hive 3上的Hive ORC ACID是否需要TEZ?

c# - 从使用 XSD.exe 生成的 XML 反序列化类

Android ScrollView 在横向模式下无法正常工作

regex - 如何获取包含特定短语的 XML 文件的数量?

java - 向 Android 布局添加圆角会留下白边

hadoop - 找不到作业 jar 文件。不能使用用户类