You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Yongzhi Chen (JIRA)" <ji...@apache.org> on 2016/01/07 16:22:39 UTC
[jira] [Commented] (HIVE-12795) Vectorized execution causes
ClassCastException
[ https://issues.apache.org/jira/browse/HIVE-12795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15087566#comment-15087566 ]
Yongzhi Chen commented on HIVE-12795:
-------------------------------------
The patch fix the issue by making sure to use WritableObjectInspector.
> Vectorized execution causes ClassCastException
> ----------------------------------------------
>
> Key: HIVE-12795
> URL: https://issues.apache.org/jira/browse/HIVE-12795
> Project: Hive
> Issue Type: Bug
> Components: Query Processor
> Affects Versions: 1.1.0
> Reporter: Yongzhi Chen
> Assignee: Yongzhi Chen
>
> In some hive versions, when
> set hive.auto.convert.join=false;
> set hive.vectorized.execution.enabled = true;
> Some join queries fail with ClassCastException:
> The stack:
> {noformat}
> Caused by: java.lang.ClassCastException: org.apache.hadoop.hive.serde2.lazy.objectinspector.primitive.LazyStringObjectInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspector.primitive.SettableStringObjectInspector
> at org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpressionWriterFactory.genVectorExpressionWritable(VectorExpressionWriterFactory.java:419)
> at org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpressionWriterFactory.processVectorInspector(VectorExpressionWriterFactory.java:1102)
> at org.apache.hadoop.hive.ql.exec.vector.VectorReduceSinkOperator.initializeOp(VectorReduceSinkOperator.java:55)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:385)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:469)
> at org.apache.hadoop.hive.ql.exec.Operator.initializeChildren(Operator.java:425)
> at org.apache.hadoop.hive.ql.exec.TableScanOperator.initializeOp(TableScanOperator.java:193)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:385)
> at org.apache.hadoop.hive.ql.exec.MapOperator.initializeOp(MapOperator.java:431)
> at org.apache.hadoop.hive.ql.exec.Operator.initialize(Operator.java:385)
> at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.configure(ExecMapper.java:126)
> ... 22 more
> {noformat}
> It can not be reproduced in hive 2.0 and 1.3 because of different code path.
> Reproduce:
> {noformat}
> CREATE TABLE test1
> (
> id string)
> PARTITIONED BY (
> cr_year bigint,
> cr_month bigint)
> ROW FORMAT SERDE
> 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
> STORED AS INPUTFORMAT
> 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
> OUTPUTFORMAT
> 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
> TBLPROPERTIES (
> 'serialization.null.format'='' );
>
> CREATE TABLE test2(
> id string
> )
> PARTITIONED BY (
> cr_year bigint,
> cr_month bigint)
> ROW FORMAT SERDE
> 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
> STORED AS INPUTFORMAT
> 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
> OUTPUTFORMAT
> 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
> TBLPROPERTIES (
> 'serialization.null.format'=''
> );
> set hive.auto.convert.join=false;
> set hive.vectorized.execution.enabled = true;
> SELECT cr.id1 ,
> cr.id2
> FROM
> (SELECT t1.id id1,
> t2.id id2
> from
> (select * from test1 ) t1
> left outer join test2 t2
> on t1.id=t2.id) cr;
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)