需要帮助您了解有关配置单元中xml数据的解决方案。
1) 下面的配置单元表“books\uxml”只包含一个名为“xmldata”的字段,我将xml数据保存为单个字符串。
hive> select xmldata from books_xml;
OK
<?xml version="1.0" encoding="UTF-8"?><catalog><book> <id>11</id>
<genre>Computer</genre> <price>44</price></book><book> <id>44</id>
<genre>Fantasy</genre> <price>5</price></book></catalog>
Time taken: 0.175 seconds, Fetched: 1 row(s)
2) 我想将上面的xml数据(在字段中)导出到下面用serde属性创建的配置单元表中?
CREATE TABLE books_serde (
id STRING,
genre STRING,
price DOUBLE
)
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
WITH SERDEPROPERTIES (
"column.xpath.id"="/book/id/text()",
"column.xpath.genre"="/book/genre/text()",
"column.xpath.price"="/book/price/text()"
)
STORED AS
INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
TBLPROPERTIES (
"xmlinput.start"="<book>",
"xmlinput.end"="</book>"
);
1条答案
按热度按时间b4lqfgs41#
将第二个表创建为指向
LOCATION
在第一张table上,这也许能解决你的问题。