0
我試圖創建一個使用JSONSerde具有以下結構的蜂巢表:蜂巢創建表錯誤
CREATE TABLE events (
device_uuid string,
uuid string,
custom struct<
"Vendor ID":int,
"Customer ID":int>,
platform string
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS TEXTFILE;
當我嘗試創建表,我遇到的問題是:
Error occurred executing hive query: OK converting to local hdfs://dpcl01:820/user/hive/aux_jars/json-serde-1.3-jar-with-dependencies.jar Added /tmp/523576-5d62-4fff-b737-813aca807eee_resources/json-serde-1.3-jar-with-dependencies.jar to class path Added resource: /tmp/52356576-5d62-4fff-b737-813aca807eee_resources/json-serde-1.3-jar-with-dependencies.jar FAILED: ParseException line 8:2 cannot recognize input near '"Vendor ID"' ':' 'int' in column specification
很明顯,這個錯誤是由於列名中的空格,但原始數據以這種形式出現,我不想執行預處理步驟來刪除空格。
有什麼建議嗎?
你是說使用get_json_object代替Serde?我不熟悉get_json_object,但是查詢不是:'select get_json_object(raw_text,「$ .custom.Vendor ID」)as vendor_id' – 2015-02-08 19:59:06
@LouisRyan我認爲你已經掌握了它的要點。這樣,您的查詢就可以成爲JSON中的字段名稱和Hive列名稱之間的翻譯層。 – rchang 2015-02-08 20:39:07
我知道這是一個很遠的問題,但我沒有Java的經驗,也不瞭解如何覆蓋方法。你能爲這個過程提供幫助嗎? – 2015-05-02 11:38:19