Hive Xpath XML:prolog中不允许使用内容

时间:2014-02-13 16:09:00

标签: xml apache hive

我正在尝试查询加载到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 个答案:

答案 0 :(得分:0)

解决。有两个问题:

  1. XML内容格式错误

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