Anthony Hsu created HIVE-6835:
---------------------------------

             Summary: Reading of partitioned Avro data fails if partition 
schema does not match table schema
                 Key: HIVE-6835
                 URL: https://issues.apache.org/jira/browse/HIVE-6835
             Project: Hive
          Issue Type: Bug
    Affects Versions: 0.12.0
            Reporter: Anthony Hsu
            Assignee: Anthony Hsu


To reproduce:
{code}
create table testarray (a array<string>);

load data local inpath '/home/ahsu/test/array.txt' into table testarray;

# create partitioned Avro table with one array column
create table avroarray (a array<string>) partitioned by (y string) row format 
serde 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' with serdeproperties 
('avro.schema.literal'='{"namespace":"test","name":"avroarray","type": 
"record", "fields": [ { "name":"a", "type":{"type":"array","items":"string"} } 
] }')  STORED as INPUTFORMAT  
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'  OUTPUTFORMAT  
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat';

insert into table avroarray partition(y=1) select * from testarray;

# add an int column with a default value of 0
alter table avroarray set serde 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
with 
serdeproperties('avro.schema.literal'='{"namespace":"test","name":"avroarray","type":
 "record", "fields": [ {"name":"intfield","type":"int","default":0},{ 
"name":"a", "type":{"type":"array","items":"string"} } ] }');

# fails with ClassCastException
select * from avroarray;
{code}
The select * fails with:
{code}
Failed with exception java.io.IOException:java.lang.ClassCastException: 
org.apache.hadoop.hive.serde2.objectinspector.StandardListObjectInspector 
cannot be cast to 
org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to