Hive Xpath XML:prolog中不允许包含内容



我正在尝试查询加载到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&apos;Ercole</Denominazione>
       <Latitudine>41.9653</Latitudine>
       <longitudine>12.7977</longitudine>
       <Indirizzo>Piazza Tempio D&apos;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.

已解决。有两个问题:

  1. XML 内容的格式不正确

    [bash]$ cat -A xmlfile
    M-oM-;M-?<?xml version="1.0" encoding="UTF-8"?>^M$
    ...
    
  2. XML 必须全部位于一行上。我在 vim 上使用 :%j 快速完成

最新更新