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
>
>
>

Reply via email to