Is there a way to alter column type in hive table?

2020-02-17 09:32发布

问题:

The current schema is:

hive> describe tableA;
OK
id      int
ts      timestamp

I want to change ts column to be BIGINT without dropping table and recreate again. Is it possible?

回答1:

Found the solution:

ALTER TABLE tableA CHANGE ts ts BIGINT AFTER id;

See this for complete details: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterColumn



回答2:

ALTER TABLE table_name CHANGE col_name col_name newType


回答3:

It's simple usually to change/modify the exesting table use this syntax in Hive.

ALTER TABLE table_name CHANGE old_col_name new_col_name new_data_type

Here you can change your column name and data type at a time. If you don't want to change col_name simply makes old_col_name and new_col_name are same. Ok.

Come to your problem. If you want to change ts column to be BIGINT.It means column-type you are changing. so simply run this query.

ALTER TABLE tableA CHANGE ts ts BIGINT;

Here ts and ts are same, means you are not changing column name, but changing column-type; if you wish to change column name also simply run it.

ALTER TABLE tableA CHANGE ts new_col BIGINT;

Now run

hive> describe tableA;
OK
id      int
new_col      bigint


标签: hive metadata