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固有のものか、HIVE1.xではなくHIVE2と関係があることを意味します。誰かがHIVE2 **と一緒に** XML-serdeの経験を持っていますか? – Frank
FWIW、セットアップでハイブ2だった... $ hive --version ハイブ2.1.1 – dvasilen