我正在尝试查询加载到Hive Table的大型XML
CREATE TABLE test (
xmlfile STRING
);
完整的XML就在这里:http://bpaste.net/show/178819/
<dataroot>
<AccessPoint>
<Denominazione>Piazza G.Garibaldi</Denominazione>
<Latitudine>41.9607</Latitudine>
<longitudine>12.7963</longitudine>
<Indirizzo>Piazza G.Garibaldi</Indirizzo>
<Comune>Tivoli</Comune>
<Tipologia>Privati federati</Tipologia>
</AccessPoint>
<AccessPoint>
<Denominazione>Piazza Tempio D'Ercole</Denominazione>
<Latitudine>41.9653</Latitudine>
<longitudine>12.7977</longitudine>
<Indirizzo>Piazza Tempio D'Ercole</Indirizzo>
<Comune>Tivoli</Comune>
<Tipologia>Privati federati</Tipologia>
</AccessPoint>
...
</dataroot>
所以我试图用
查询SELECT XPATH(xmlfile,'dataroot/AccessPoint/Denominazione/text()') FROM test;
...
Job running in-process (local Hadoop)
[Fatal Error] :1:1: Content is not allowed in prolog.
答案 0 :(得分:0)
解决。有两个问题:
XML内容格式错误
[bash]$ cat -A xmlfile
M-oM-;M-?<?xml version="1.0" encoding="UTF-8"?>^M$
...
XML必须全部在一行上。我快速完成了:vim上的%j