Hive で xml serde を使用して xml からタイムスタンプを抽出しようとしています。外部テーブルの作成は hdfs ディレクトリにリンクします。現在、テーブルにタイムスタンプ値が null として表示されます。
タイムスタンプをキャストする必要があると思いますか? 私はわかりません。残りの xml 情報は正しく機能しており、ハイブに表示されます。
入力ファイルは次のとおりです。
<example>
<date>2017-02-09 22:03:58<date>
</example>
ハイブ作成スクリプト:
create external table example (
date timestamp
)
ROW FORMAT SERDE 'com.ibm.spss.hive.serde2.xml.XmlSerDe'
WITH SERDEPROPERTIES (
"column.xpath.date"="/example/date/text()"
)
STORED AS
INPUTFORMAT 'com.ibm.spss.hive.serde2.xml.XmlInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat'
LOCATION 'mypath'
TBLPROPERTIES (
"xmlinput.start"="<example>",
"xmlinput.end"="</example>"
);