hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Barna Zsombor Klara (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-16559) Parquet schema evolution for partitioned tables may break if table and partition serdes differ
Date Mon, 08 May 2017 17:23:04 GMT

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

Barna Zsombor Klara commented on HIVE-16559:
--------------------------------------------

I ran the same test as in the Jira description but with ORC as the file format and HIVE_SCHEMA_EVOLUTION
set to false and ended up with:{{Error: java.io.IOException: java.lang.ClassCastException:
org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.Text (state=,code=0)}}
when trying to select from the altered table. 
I don't think ORC supports this either.
But then again I don't really understand that check for ORC, how does setting HIVE_SCHEMA_EVOLUTION
to false end up with a "supported" mode for schema evolution?

> Parquet schema evolution for partitioned tables may break if table and partition serdes
differ
> ----------------------------------------------------------------------------------------------
>
>                 Key: HIVE-16559
>                 URL: https://issues.apache.org/jira/browse/HIVE-16559
>             Project: Hive
>          Issue Type: Bug
>          Components: Serializers/Deserializers
>            Reporter: Barna Zsombor Klara
>            Assignee: Barna Zsombor Klara
>             Fix For: 3.0.0
>
>         Attachments: HIVE-16559.01.patch
>
>
> Parquet schema evolution should make it possible to have partitions/tables 
>  backed by files with different schemas. Hive should match the table columns with file
columns based on the column name if possible.
> However if the serde for a table is missing columns from the serde of a partition Hive
fails to match the columns together.
> Steps to reproduce:
> {code}
> CREATE TABLE myparquettable_parted
> (
>   name string,
>   favnumber int,
>   favcolor string,
>   age int,
>   favpet string
> )
> PARTITIONED BY (day string)
> STORED AS PARQUET;
> INSERT OVERWRITE TABLE myparquettable_parted
> PARTITION(day='2017-04-04')
> SELECT
>    'mary' as name,
>    5 AS favnumber,
>    'blue' AS favcolor,
>    35 AS age,
>    'dog' AS favpet;
> alter table myparquettable_parted
> REPLACE COLUMNS
> (
> favnumber int,
> age int
> );   <!--- No cascade option, so the partition will not be altered. 
> {code}
> {{SELECT * FROM myparquettable_parted where day='2017-04-04';}}
> will fail with:
> {{java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.io.IntWritable}}
> Hive should either match the columns together or prevent the user from dropping columns
from the table.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message