创建表后的Hive分区和新属性引入

时间:2015-10-16 05:52:35

标签: hadoop hive

这与Apache Hive分区问题有关。

创建分区表后,请帮我解决新属性添加问题。 新属性数据未加载。

我们需要调整一下吗?

数据:

header: id,  name, date,   sal

dummy.txt
---------

1,Narayana,20150201,20.345
2,Narayana1,20150202,23.654
3,Narayana2,20150203,776.23
4,Narayana3,20150204,23.224
5,Narayana4,20150205,77.88
6,Narayana5,20150206,99.765

DDL

create schema nari;
use nari;

drop table x_1;
create external table x_1(
  id int
 ,name string
 ,dt string
 ,sal double)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
LOCATION '/user/hdpcsc/data';

drop table p_emp;
create table p_emp(
  id int
 ,name string
 ,dt string)
partitioned by(fp string)
CLUSTERED BY (id) SORTED BY (id asc) INTO 256 BUCKETS
STORED AS ORC TBLPROPERTIES("orc.compress"="SNAPPY");

insert1

insert overwrite table  p_emp partition(fp="Q1FY15")
select id, name, dt from x_1;

选择

select * from p_emp; -- works well 

insert2

insert overwrite table  p_emp partition(fp="FCQ116")
select id, name, dt from x_1;

选择

select * from p_emp; -- works well 

现在添加新属性

alter table p_emp add columns (sal double);

insert4

insert overwrite table  p_emp partition(fp="Q1FY15")
select id, name, dt, sal from x_1;

选择

select * from p_emp; -- sal attr null data

insert5

insert overwrite table  p_emp partition(fp="FCQ116")
select id, name, dt, sal from x_1;

选择

select * from p_emp; -- sal attr null data

1 个答案:

答案 0 :(得分:0)

如果使用hive0.14.0:

,您可以尝试以下查询添加列并执行插入吗?
alter table p_emp partition(fp="Q1FY15") add columns (sal double);
alter table p_emp partition(fp="FCQ116") add columns (sal double);

您遇到的问题是在0.11.0,0.12.0和0.13.0版本的配置单元中的错误(HIVE-6131)。

如果在执行上述alter语句时遇到错误,请尝试删除分区并再次插入数据。希望这会有所帮助......