You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Yongzhi Chen (JIRA)" <ji...@apache.org> on 2016/01/06 23:41:39 UTC
[jira] [Created] (HIVE-12795) Vectorized execution causes
ClassCastException
Yongzhi Chen created HIVE-12795:
-----------------------------------
Summary: 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)