2017-09-26 72 views
0

我想在hive.Below中加載json文件是樣本json文件。解析配置單元中的json文件

{"Result":[ 
{"Col1":"Key1","Col2":"[email protected]","Col3":"7"}, 
{"Col1":"Key2","Col2":"[email protected]","Col3":"7"}, 
{"Col1":"Key3","Col2":"[email protected]","Col3":"7"}, 
{"Col1":"Key4","Col2":"[email protected]","Col3":"7"} 
]} 

我已經嘗試過在蜂巢中創建語句。

create table if not exists sample_json (A Array<struct<"Col1":String,"Col2":string,"Col3":string>>) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION '/a/b/c' 

我無法檢索table.I各列中的數據都試圖引爆數組,但它僅返回第一個紀錄。可請人所說的其實是錯呢?

回答

0

創建

CREATE EXTERNAL TABLE testJson (
     Result ARRAY <struct<Col1:String , 
          Col2 : string , 
          Col3 : string > >) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' 
LOCATION 's3n://temp_db.db/testjsonstring'; 

查詢

SELECT 
     t.col1 
     ,t.col2 
     ,t.col3 
    FROM 
     testJson LATERAL VIEW explode (result) r AS t LIMIT 100 

結果

Col1 Col2   Col3 
Key1 [email protected] 7 
Key2 [email protected] 7 
Key3 [email protected] 7 
Key4 [email protected] 7 
+1

感謝@rbyndoor寫入單獨加載inpath語句後,它工作。 – user1734980