How to rename a hive table without changing location? How to rename a hive table without changing location? hadoop hadoop

How to rename a hive table without changing location?


Yeah we can do that. You just need to follow below three commands in sequence.

  1. Lets say you have a external table test_1 in hive. And you want to rename it test_2 which should point test_2 location not test_1. Then you need to convert this table into Managed table using below command.test_1 -> pointing to test_1 location

    ALTER TABLE db_name.test_1 SET TBLPROPERTIES('EXTERNAL'='FALSE');
  2. Rename the table name.

    ALTER TABLE db_name.test_1 RENAME TO db_name.test_2;
  3. Again convert the managed table after renaming to external table.

    ALTER TABLE db_name.test_2 SET TBLPROPERTIES('EXTERNAL'='TRUE');

db_name.test_2 table will point the test_2 location. If we do it without making the managed table it will point the test_1 location.


As of Hive 2.2.0 a managed table's HDFS location is moved only if the table is created without a LOCATION clause and under its database directory.Link


ALTER TABLE does not follow the databasename.tablename syntax in Hive like it does in CREATE or SELECT.Mention the databasename first and then run alter table statement.

syntax as below

USE databasename;ALTER TABLE old_tablename RENAME TO new_tablename;