Hi Shuaifeng, > Float is not supported because it's not supported by Thrift,
But I see float listed as a valid primitive type on http://wiki.apache.org/hadoop/Hive/HiveQL and also in various places in source tree. (e.g., o.a.h.h.serde2.objectinspector.PrimitiveObjectInspector) But wiki page that you listed indeed doesnt have it. Looking further in Thrift in o.a.thrift.protocol.TType float is not listed as a type. So, I am now confused whether it really is one of the supported types or not. Is it supported only in case where Thrift is not used for ser-deser ? Can someone please clarify. Thanks, Ashutosh On Thu, Jun 24, 2010 at 03:33, Zhou Shuaifeng <[email protected]> wrote: > Float is not supported because it's not supported by Thrift, and Hive uses > Thrift a lot for internal data serialization/deserialization. > See http://wiki.apache.org/hadoop/Hive/HiveQL/Types > > Shuaifeng > ________________________________ > From: Marc Limotte [mailto:[email protected]] > Sent: Thursday, June 24, 2010 10:11 AM > To: [email protected] > Subject: Hive problem when using JDBC driver and type float > > I've run into a problem using the Hive JDBC driver, with tables that contain > floats. The following two statements work fine in the hive shell, but break > if I execute them through the JDBC driver. > > I can create a table like this: > > CREATE TABLE simple ( > id int, > value string, > amt float > ) > ROW FORMAT DELIMITED > STORED AS TEXTFILE > > Which works ok. But then I try this: > > select * from simple > > This fails with an exception > > java.sql.SQLException: Could not create ResultSet: > java.lang.RuntimeException: specifying type float which has not been defined > at > org.apache.hadoop.hive.jdbc.HiveResultSet.initDynamicSerde(HiveResultSet.java:120) > at > org.apache.hadoop.hive.jdbc.HiveResultSet.<init>(HiveResultSet.java:74) > at > org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:178) > ... > > I'm using Hive 0.5.0, but it's the Cloudera distribution (0.5.0+20). This > is all running locally on my mac on a standalone cluster. > > Also, if I use type "double" instead of "float", then it works. Which is a > suitable work around for my needs, but I'm wondering what's going on. > > Marc > > >
