2017-10-05 14 views
0

Je suis en train d'analyser un fichier xml imbriqué en utilisant hivexml serde mais il renvoie null alors que nous sélectionnons les données de la table ruche. Exemple de fichier xml est xml data. Requête que j'ai créée pour analyser le fichier XML.L'analyse du fichier xml imbriqué retourne des données nulles dans la ruche

CREATE EXTERNAL TABLE IF NOT EXISTS abc (mail string, Type string, Id bigint, Date string, LId bigint, value string) 
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe' 
WITH SERDEPROPERTIES (
"column.xpath.OptOutEmail"="/Re/mail/text()", 
"column.xpath.OptOutType"="/Re/Type/text()", 
"column.xpath.SurveyId"="/Re/Id/text()", 
"column.xpath.RequestedDate"="/Re/Date/text()", 
"column.xpath.EmailListId"="/Re/Lists/LId/text()", 
"column.xpath.Description"="/Re/Lists/value/text()") 
STORED AS INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat' 
LOCATION '/abc/xyz' 
TBLPROPERTIES ("xmlinput.start"="<Out>","xmlinput.end"= "</Out>"); 

S'il vous plaît quelqu'un peut aider.

Répondre

1

Essayez avec la question ci-dessous. J'ai chargé les données dans la table à partir d'un chemin local.

CREATE EXTERNAL TABLE IF NOT EXISTS xmlList (mail string, Type string, Id 
bigint, Dated string, LId bigint, value string) 
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe' 
WITH SERDEPROPERTIES (
"column.xpath.mail"="/Re/mail/text()", 
"column.xpath.Type"="/Re/Type/text()", 
"column.xpath.Id"="/Re/Id/text()", 
"column.xpath.Dated"="/Re/Dated/text()", 
"column.xpath.LId"="/Re/Lists/List/LId/text()", 
"column.xpath.value"="/Re/Lists/List/value/text()") 
STORED AS INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat' 
TBLPROPERTIES ("xmlinput.start"="<Re>","xmlinput.end"= "</Re>"); 

enter image description here

+0

Merci Dipak. Cela a fonctionné pour moi. – user1734980