[
https://issues.apache.org/jira/browse/HIVE-9371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14285076#comment-14285076
]
Ferdinand Xu commented on HIVE-9371:
------------------------------------
Hi [~brocknoland] [~mohitsabharwal], can you help take a look at my fix when
you have some time?
> Execution error for Parquet table and GROUP BY involving CHAR data type
> -----------------------------------------------------------------------
>
> Key: HIVE-9371
> URL: https://issues.apache.org/jira/browse/HIVE-9371
> Project: Hive
> Issue Type: Bug
> Components: File Formats, Query Processor
> Reporter: Matt McCline
> Assignee: Ferdinand Xu
> Priority: Critical
> Attachments: HIVE-9371.patch
>
>
> Query fails involving PARQUET table format, CHAR data type, and GROUP BY.
> Probably also fails for VARCHAR, too.
> {noformat}
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException:
> java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to
> org.apache.hadoop.hive.serde2.io.HiveCharWritable
> at
> org.apache.hadoop.hive.ql.exec.GroupByOperator.processOp(GroupByOperator.java:814)
> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
> at
> org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)
> at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
> at
> org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:95)
> at
> org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:157)
> at
> org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:493)
> ... 10 more
> Caused by: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be
> cast to org.apache.hadoop.hive.serde2.io.HiveCharWritable
> at
> org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableHiveCharObjectInspector.copyObject(WritableHiveCharObjectInspector.java:104)
> at
> org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils.copyToStandardObject(ObjectInspectorUtils.java:305)
> at
> org.apache.hadoop.hive.ql.exec.KeyWrapperFactory$ListKeyWrapper.deepCopyElements(KeyWrapperFactory.java:150)
> at
> org.apache.hadoop.hive.ql.exec.KeyWrapperFactory$ListKeyWrapper.deepCopyElements(KeyWrapperFactory.java:142)
> at
> org.apache.hadoop.hive.ql.exec.KeyWrapperFactory$ListKeyWrapper.copyKey(KeyWrapperFactory.java:119)
> at
> org.apache.hadoop.hive.ql.exec.GroupByOperator.processHashAggr(GroupByOperator.java:827)
> at
> org.apache.hadoop.hive.ql.exec.GroupByOperator.processKey(GroupByOperator.java:739)
> at
> org.apache.hadoop.hive.ql.exec.GroupByOperator.processOp(GroupByOperator.java:809)
> ... 16 more
> {noformat}
> Here is a q file:
> {noformat}
> SET hive.vectorized.execution.enabled=false;
> drop table char_2;
> create table char_2 (
> key char(10),
> value char(20)
> ) stored as parquet;
> insert overwrite table char_2 select * from src;
> select value, sum(cast(key as int)), count(*) numrows
> from src
> group by value
> order by value asc
> limit 5;
> explain select value, sum(cast(key as int)), count(*) numrows
> from char_2
> group by value
> order by value asc
> limit 5;
> -- should match the query from src
> select value, sum(cast(key as int)), count(*) numrows
> from char_2
> group by value
> order by value asc
> limit 5;
> select value, sum(cast(key as int)), count(*) numrows
> from src
> group by value
> order by value desc
> limit 5;
> explain select value, sum(cast(key as int)), count(*) numrows
> from char_2
> group by value
> order by value desc
> limit 5;
> -- should match the query from src
> select value, sum(cast(key as int)), count(*) numrows
> from char_2
> group by value
> order by value desc
> limit 5;
> drop table char_2;
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)