Hive 修改字段名后其值为NULL
Hive 版本
hive --version Hive 3.1.2
我们总会遇到想改一个字段名的情况,这类需求在日常工作中也会存在,但是遇到一个现象:
更改字段字段名之后,相对应的字段名的值为 NULL、
alter table tablename change old_column new_column string; select new_column from tablename limit 10;
这个时候会发现,这一类的值都是 NULL 了,顿时脑子嗡嗡的...
更改个字段名称,居然会影响这一列的值,无法想象
原因:
tablename 这一张表是parquet 表造成的,表的属性:parquet.column.index.access 造成的
解决:
alter table tablename set tblproperties ('parquet.column.index.access'='true');
但在Hive中该属性默认为False,所以需要在当前会话设置该属性为true或在建表属性中增加该属性为true
天下难事,必作于易;天下大事,必作于细