0
鍵值對組合。我們試圖將ID作爲列名和VALUE分解爲每列的相應數據。配置單元 - XML-串行 - 鍵值對 - 創建表
`<CT> <items> <item> <field> <id>Column1</id> <value>25672</value> </field>
<field> <id>Column2</id> <value>FGE</value> </field> <field>
<id>Column3</id> <value>Florence to Venice</value> </field> </item>
</items>
</CT>`
我們期待下面創建一個表, 預期輸出:
Column1 Column2 Column3
25672 FGE Florence to Venice
我們嘗試使用地圖提取鍵值對,但我們沒有得到想要的結果。
'CREATE EXTERNAL TABLE dev.reference_test(
PM_SubCollection array<map<string,string>>
)
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
WITH SERDEPROPERTIES(
"column.xpath.PM_SubCollection"="/CT/items/item/field",
"xml.map.specification.id"="#id->#value"
)
STORED AS
INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
LOCATION '/dev/reference_test'
TBLPROPERTIES (
"xmlinput.start"="",
"xmlinput.end"=""
);'
Output:
'[{"field":"Column125672"},{"field":"Column2FGE"},{"field":"Column3Florence to Venice"}]'
任何建議將是有益的
不會發生。列應該事先知道。 –
謝謝你的迴應。如果我們知道列並使用期望的列創建表,我們可以將它的值部分映射到相應的列嗎? – Paciferous