在配置单元中更改列名称后,列的值变为NULL

问题描述 投票:0回答:1

在配置单元表上工作,我需要按以下方式更改列名称,它按预期方式工作并更改列名称,但此列的下划线值变为NULL。

ALTER TABLE bdahd01p_dlaai1_aai_pag.raw_esg_sustainalytics_pi_b CHANGE hdfs_loaddate hdfs_load_date String;

此处更改的列名称为hdfs_load_date,并且重命名列名称后值变为NULL。

任何人都有解决此问题的想法。预先感谢!

hadoop hive hiveql
1个回答
0
投票

@@ Ajay_SK参考本文:Hive Alter table change Column Name

有评论:

请注意,如果列更改是实木复合地板表,则不会更改任何基础数据。也就是说,如果表中已经有数据,则重命名列将不会使该列中的数据以新名称访问: 1 alter table test_change更改a1 int;从test_change选择a1; null

他特定于镶木地板,但是您所描述的方案与您成功更改名称相似,但是配置单元仍然认为原始数据在原始密钥中。

解决您问题的一种更好的方法是,通过更改列名来创建您想要的架构的新表。然后执行Insert INTO new table选择FROM * old table。

© www.soinside.com 2019 - 2024. All rights reserved.