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?
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?
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
ALTER TABLE table_name CHANGE col_name col_name newType
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