2016-01-14 58 views
0

我有一個java Map(Map)和一個JDBC連接到配置單元服務器。 服務器上表的模式包含一個Map類型的列。 是否可以使用JDBC將java Map插入到具有相似數據類型的hive表列中?使用jdbc在配置單元中插入映射和其他複雜類型

我想:

"create table test(key string, value Map<String, String>)" 

"insert into table test values ('keywer', map('subkey', 'subvalue')) from dummy limit 1;" 

裁判:Hive inserting values to an array complex type column

但是插入失敗:

"Error: Error while compiling statement: FAILED: ParseException line 1:69 missing EOF at 'from' near ')' (state=42000,code=40000)" 

[編輯]

蜂巢版本是:0.14。 0

感謝

回答

0

我認爲正確的DDL和查詢是:

CREATE TABLE test(key STRING, value MAP<STRING, STRING>); 
INSERT INTO TABLE test VALUES('keywer', map('subkey', 'subvalue')) from dummy limit 1; 
0

加工方法,從JDBC客戶端把一個複雜類型是:

insert into table test select "key",map("key1","value1","key2","value2") from dummy limit 1; 

其中假是另一種至少有一行的表。

0

該手冊明確表示,使用SQL,你不能插入到地圖數據類型:

「蜂巢不支持複雜類型(陣列,地圖,結構,聯合)文字,因此,它是不可能使用它們在INSERT INTO ... VALUES子句中,這意味着用戶不能使用INSERT INTO ... VALUES子句將數據插入到複雜的數據類型列中。「

相關問題