1. ORC的表
1.1 创建表
create table t_orc(c1 string) stored as orc;
1.2 插入数据
insert into t_orc values('orc value1'),('orc value2');
1.3 查看数据
select * from t_orc;
1.4 修改列名
alter table t_orc change c1 c2 string;
1.5 查看修改之后的数据
select * from t_orc;
如果没有问题,则执行 set orc.force.positional.evolution;
如果此参数的值是true
,则没有问题。
1.6 解决办法
此解决办法不使用于所有 hive 版本。hive-3.1.3 支持。Jira:HIVE-20126
set orc.force.positional.evolution=true;
select * from t_orc;
2. Parquet 表
1.1 创建表
create table t_parquet(c1 string) stored as parquet;
1.2 插入数据
insert into t_parquet values('parquet value1'),('parquet value2');
1.3 查看数据
select * from t_parquet;
1.4 修改列名
alter table t_parquet change c1 c2 string;
1.5 查看修改之后的数据
select * from t_parquet;
如果没有问题,则执行 set parquet.column.index.access;
如果此参数的值是true
,则没有问题。
1.6 解决办法
此解决办法不使用于所有 hive 版本。hive-3.1.3 支持。Jira:HIVE-6938
set parquet.column.index.access=true;
select * from t_parquet;