0
我使用XML SerDe從XML文件創建一個帶有HIVE(Hive 2.1.1-mapr-1703)的外部表。該文件是來自W3C聯盟的XML example。HIVE XML SerDe:失敗,出現異常java.io.IOException:java.lang.NullPointerException
這是我的代碼來創建表:
add jar /mapr/localpath/hivexmlserde-1.0.5.3.jar;
USE my_db;
CREATE EXTERNAL TABLE frank_books (
category STRING,
title STRING,
language STRING,
year BIGINT
)
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
WITH SERDEPROPERTIES (
"column.xpath.category" = "/book/@category",
"column.xpath.title" = "/book/title/text()",
"column.xpath.language" = "/book/title/@lang",
"column.xpath.year" = "/book/year/text()"
)
STORED AS
INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
LOCATION '/mapr/localpath/database_files/xml_example'
TBLPROPERTIES (
"xmlinput.start" = "<book category",
"xmlinput.stop" = "</book>"
)
本身的存在是因爲描述語句不會導致錯誤的表:
describe frank_books;
簡單的SELECT語句像下面的線索到NullPointerException:
select * from my_db.frank_books;
這是輸出:
OK
Failed with exception java.io.IOException:java.lang.NullPointerException
Time taken: 1.117 seconds
任何人都可以幫忙,請給我解釋一下錯誤嗎?
謝謝,弗蘭克
我最初的例子描述了創建**外部表**。我還重現了_dvasilen_描述的內部表的創建。雖然_dvasilien_寫道它在他的設置中起作用,但我得到了同樣的錯誤。這意味着它可能是MapR特定的或與HIVE2有關的,而不是HIVE1.x。有人有** XML-serde和HIVE2 **的經驗嗎? – Frank
FWIW,它在我的設置中是Hive 2 ... $ hive --version Hive 2.1.1 – dvasilen