Ajay Kharade
Ajay Kharade

Reputation: 1525

After changing column name in hive, value of column are getting NULL

Working on hive table, where I need to change column name as below, its working as expected and changing column name but underline value of this column getting NULL.

ALTER TABLE db.tbl CHANGE hdfs_loaddate hdfs_load_date String;

Here changed column name is hdfs_load_date and values are getting NULL after renaming column name.

Does any one have idea to fix this. Thanks in advance!!

Upvotes: 2

Views: 1616

Answers (1)

steven-matison
steven-matison

Reputation: 1659

@Ajay_SK Referencing this article: Hive Alter table change Column Name

There is a comment:

Note that the column change will not change any underlying data if it is a parquet table. That is, if you have data in the table already, renaming a column will not make the data in that column accessible under the new name: select a from test_change; 1 alter table test_change change a a1 int; select a1 from test_change; null

He is specific to parquet, but the scenario you describe is similar where you have successfully changed the name, but hive still thinks the original data is in the original key.

A better approach to solve your issue, would be to create a new table of the schema you want with column name change. Then perform an Insert INTO new table select FROM * old table.

Upvotes: 4

Related Questions