You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Genmao Yu (Jira)" <ji...@apache.org> on 2023/02/08 06:25:00 UTC

[jira] [Created] (HIVE-27059) Wrong object inspector will be created when use collect_list and disable map-side aggregation

Genmao Yu created HIVE-27059:
--------------------------------

             Summary: Wrong object inspector will be created when use collect_list and disable map-side aggregation
                 Key: HIVE-27059
                 URL: https://issues.apache.org/jira/browse/HIVE-27059
             Project: Hive
          Issue Type: Bug
          Components: Query Planning
    Affects Versions: 4.0.0-alpha-2, 3.1.3, 2.3.8
         Environment: 

            Reporter: Genmao Yu
            Assignee: Genmao Yu


Query will fail when use collect_list (or collect_set) and disable map-side aggregationg:

{code:java}
Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryMap cannot be cast to java.util.Map
        at org.apache.hadoop.hive.serde2.objectinspector.StandardMapObjectInspector.getMap(StandardMapObjectInspector.java:85)
        at org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.copyToStandardObject(ObjectInspectorUtils.java:437)
        at org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.copyToStandardObject(ObjectInspectorUtils.java:362)
        at org.apache.hadoop.hive.ql.udf.generic.GenericUDAFMkCollectionEvaluator.putIntoCollection(GenericUDAFMkCollectionEvaluator.java:154)
        at org.apache.hadoop.hive.ql.udf.generic.GenericUDAFMkCollectionEvaluator.iterate(GenericUDAFMkCollectionEvaluator.java:120)
        at org.apache.hadoop.hive.ql.udf.generic.GenericUDAFEvaluator.aggregate(GenericUDAFEvaluator.java:192)
        at org.apache.hadoop.hive.ql.exec.GroupByOperator.updateAggregations(GroupByOperator.java:638)
        at org.apache.hadoop.hive.ql.exec.GroupByOperator.processAggr(GroupByOperator.java:877)
        at org.apache.hadoop.hive.ql.exec.GroupByOperator.processKey(GroupByOperator.java:721)
        at org.apache.hadoop.hive.ql.exec.GroupByOperator.process(GroupByOperator.java:787)
{code}

To reproduce this issue:
{code:sql}
create table tb1 (a int, b string, c string);
insert into tb1 values (1, "100", "101");
insert into tb1 values (1, "102", "103");
insert into tb1 values (2, "200", "201");
set hive.map.aggr=false;
select a, collect_list(map("b",b,"c",c)) as col1 from tb1 group by a;
select a, collect_set(array(b, c)) as col1 from tb1 group by a;
{code}

To work around this issue:
{code:sql}
set hive.map.aggr=true;
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)