You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Jason Dere (Jira)" <ji...@apache.org> on 2019/12/07 02:30:00 UTC

[jira] [Commented] (HIVE-22595) Dynamic partition inserts fail on Avro table table with external schema

    [ https://issues.apache.org/jira/browse/HIVE-22595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16990284#comment-16990284 ] 

Jason Dere commented on HIVE-22595:
-----------------------------------

I think this was introduced by HIVE-11972, but I guess we never ran into this one until now.
In the case of an external schema we cannot rely on the column list from the TableDesc properties to give the correct number of columns.

> Dynamic partition inserts fail on Avro table table with external schema
> -----------------------------------------------------------------------
>
>                 Key: HIVE-22595
>                 URL: https://issues.apache.org/jira/browse/HIVE-22595
>             Project: Hive
>          Issue Type: Bug
>          Components: Avro, Serializers/Deserializers
>            Reporter: Jason Dere
>            Assignee: Jason Dere
>            Priority: Major
>
> Example qfile test:
> {noformat}
> create external table avro_extschema_insert1 (name string) partitioned by (p1 string)
>   stored as avro tblproperties ('avro.schema.url'='${system:test.tmp.dir}/table1.avsc');
> create external table avro_extschema_insert2 like avro_extschema_insert1;
> insert overwrite table avro_extschema_insert1 partition (p1='part1') values ('col1_value', 1, 'col3_value');
> insert overwrite table avro_extschema_insert2 partition (p1) select * from avro_extschema_insert1;
> {noformat}
> The last statement fails with the following error:
> {noformat}
> ], TaskAttempt 3 failed, info=[Error: Error while running task ( failure ) : attempt_1575484789169_0003_4_00_000000_3:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
> 	at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:296)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:250)
> 	at org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:374)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:73)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:61)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:61)
> 	at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:37)
> 	at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36)
> 	at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125)
> 	at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69)
> 	at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
> 	at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:101)
> 	at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:76)
> 	at org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:426)
> 	at org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:267)
> 	... 16 more
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
> 	at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:576)
> 	at org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:92)
> 	... 19 more
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.hive.serde2.avro.AvroSerdeException: Number of input columns was different than output columns (in = 2 vs out = 1
> 	at org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:1047)
> 	at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:994)
> 	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:940)
> 	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:927)
> 	at org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:95)
> 	at org.apache.hadoop.hive.ql.exec.Operator.baseForward(Operator.java:994)
> 	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:940)
> 	at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:125)
> 	at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:153)
> 	at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:555)
> 	... 20 more
> Caused by: org.apache.hadoop.hive.serde2.avro.AvroSerdeException: Number of input columns was different than output columns (in = 2 vs out = 1
> 	at org.apache.hadoop.hive.serde2.avro.AvroSerializer.serialize(AvroSerializer.java:77)
> 	at org.apache.hadoop.hive.serde2.avro.AvroSerDe.serialize(AvroSerDe.java:223)
> 	at org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:951)
> 	... 29 more
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)