J'utilise hivexmlserde-1.0.5.3
pour analyser des données XML dans des tables Hive. Je suis face à un problème quand je suis en train d'analyser les balises qui ont des sauts de ligne en eux, quelque chose comme ceci:Hive XML Serde - Analyse des chaînes avec des sauts de ligne
<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>
Cette ligne est en train de lire que d'abord quand je suis en train de l'analyser en utilisant les éléments suivants:
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>");
Y at-il quelque chose que je fais mal ou existe-t-il une meilleure façon de le faire? Toute aide serait appréciée.
TIA