You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Michael Haeusler (JIRA)" <ji...@apache.org> on 2015/06/12 11:38:00 UTC

[jira] [Created] (HIVE-10987) Creating an array with union types throws an IOException

Michael Haeusler created HIVE-10987:
---------------------------------------

             Summary: Creating an array with union types throws an IOException
                 Key: HIVE-10987
                 URL: https://issues.apache.org/jira/browse/HIVE-10987
             Project: Hive
          Issue Type: Bug
          Components: Query Processor, Types
    Affects Versions: 1.2.0, 1.0.0, 0.14.0, 0.13.0
         Environment: HDP-2.3-TP, HDP-2.2, HDP-2.1
            Reporter: Michael Haeusler


According to documentation arrays allow any other datatype for elements (incl. complex datatypes).

But creating an array of union types will cause an IOException in versions 0.14 to 1.2:
{code}
hive> SELECT ARRAY(CREATE_UNION(1,1,'a'));
OK
Failed with exception java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: Error evaluating array(create_union(1,1,'a'))
Time taken: 0.522 seconds
{code}

It causes a HiveException in version 0.13:
{code}
hive> SELECT ARRAY(CREATE_UNION(1, 1, 'a'));
Query ID = haeusler_20141114112929_5ee86c17-e607-4f0f-a157-92699e4d5777
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_1415037444037_12008, Tracking URL = http://********:8088/proxy/application_1415037444037_12008/
Kill Command = /usr/lib/hadoop/bin/hadoop job  -kill job_1415037444037_12008
Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0
2014-11-14 11:29:50,699 Stage-1 map = 0%,  reduce = 0%
[…]
Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Error evaluating array(create_union(1,1,'a'))
       at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)
[...]
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.serde2.objectinspector.StandardUnionObjectInspector cannot be cast to org.apache.hadoop.io.IntWritable
       at org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableIntObjectInspector.get(WritableIntObjectInspector.java:36)
       at org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils.getInt(PrimitiveObjectInspectorUtils.java:598)
       at org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorConverter$IntConverter.convert(PrimitiveObjectInspectorConverter.java:150)
       at org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorConverters$UnionConverter.convert(ObjectInspectorConverters.java:456)
       at org.apache.hadoop.hive.ql.udf.generic.GenericUDFArray.evaluate(GenericUDFArray.java:79)
[...]
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)