cdh集群hive表新增字段测试

问题:现有分区表添加新字段后,往分区表插入数据,插入的数据有对新字段赋值,hive下查询分区表新添加字段出现新增字段查询结果为null,而impala下查询新增字段有值。

目的:为了验证Hive下的分区表新增字段,然后对新增字段进行赋值,通过hive或者impala连接串的方式查询表中的的新增字段,确认新增字段是否有值。

1、创建表

1)在hive下建表
脚本如下:
create table adp_usr.t_test_20220119(id int, name string, age int) partitioned by (type string)
STORED AS PARQUET;
2)在impala下进行元数据刷新
invalidate metadata adp_usr.t_test_20220119;

2、插入数据

在impala下进行插入数据
insert overwrite adp_usr.t_test_20220119(id,name,age) partition (type='A1') 
values (1,'zhangsan',18),(2,'lisi',23);
insert overwrite adp_usr.t_test_20220119 partition (type='A2') 
values(3,'wangwu',22),(4,'zhaoliu',28),(5,'tianqi',24);

3、解决步骤:

3.1、新增字段

1)hive下执行
ALTER TABLE adp_usr.t_test_20220119 ADD columns (sex string comment '性别') ;
ALTER TABLE adp_usr.t_test_20220119 ADD columns (score int comment '分数') cascade;

2)impala下进行元数据刷新
invalidate metadata adp_usr.t_test_20220119;

3.2、插入数据

impala下执行
1)往已存在的分区中插入数据
insert overwrite adp_usr.t_test_20220119 partition (type='A2') 
values(3,'wangwu',22,'男',88),(4,'zhaoliu',28,'男',88),(5,'tianqi',24,'女',88);

1)往新分区中插入数据
insert overwrite adp_usr.t_test_20220119 partition (type='A3') 
values(3,'wangwu',22,'男',94),(4,'zhaoliu',28,'男',87),(5,'tianqi',24,'女',96);

4、查询数据

1)hive下查询

  • 查询语句:select * from adp_usr.t_tes_20220119;
  • 查询结果:

cdh集群hive表新增字段测试

2)impala下查询

  • 查询语句:select * from adp_usr.t_tes_20220119;
  • 查询结果:

cdh集群hive表新增字段测试

5、结论:

     在HIVE下的分区表新增字段不管是否有添加cascade关键字,给新增字段赋值,新增字段都有值。

  

上一篇:CDP大数据平台hive表格与CDH的不同


下一篇:【离线数仓面试】数仓架构:架构、输入输出、流程、框架选型及版本、项目集群规模、分层架构、分层原因