JDBC itself does not support complex types. If I remember correctly (Raghu can confirm), the complex type should get serialzed as a json string when you run the query. You can then do a res.getString(2) to get that column and then use some json libraries in java to deserialize this and get back a java map.
Ashish ________________________________ From: michal shmueli [mailto:[email protected]] Sent: Thursday, August 20, 2009 3:01 AM To: [email protected] Subject: Complex Type and JDBC Folks, I have a table with this schema: (int key, values MAP<String, String>). I want to fetch the data from the table into local Map in my java code. Following the hive JDBC example, I did : String selectSql = "select * from " + tableName; ResultSet res = stmt.executeQuery(selectSql); To get the first attribute (the key ) i did: String user = res.getString(1); Now I wish to get the data of values (the Map) into the local map, but I don't know how to access the ResultSet such that it will keep the Map so i don't have to parse the content. Is there such an option at all? if not, does it mean that I can only keep the complex type within Hive and can't utilize it to other parts? thanks, Michal
