问题描述
我正在尝试使用alter命令在配置单元(ORC表)表中重命名列名。列已重命名,但数据已修改为Null
值。
示例:
select city from p_details;
city
Santa Fe Springs
Jiangmen
**alter table p_details change city city_name string;**
select city_name from p_details;
city_name
NULL
NULL
解决方法
根据Hive manual:“列更改命令将仅修改Hive的元数据,而不会修改数据。用户应确保表/分区的实际数据布局符合元数据定义。”表示如果列更改是兽人或镶木表,则列更改将不会更改任何基础数据。
尝试执行msck repair table <table_name>
,但这可能无济于事。
您始终可以使用重命名的列来创建新表。