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