'Can I change a table from internal to external in hive?

I created a table in hive as a managed table, but it was supposed to be external, is it possible to change the table type of the table without losing the data?



Solution 1:[1]

ALTER TABLE <table> SET TBLPROPERTIES('EXTERNAL'='TRUE')

Note: EXTERNAL and TRUE need to caps or it will not work

Solution 2:[2]

You can copy your data files from the Hive data location to the location you planned to store your external table, drop the table and re-create it as external.

Solution 3:[3]

alter table <table_name> SET TBLPROPERTIES('EXTERNAL'='TRUE')

Note: It work only if it is non transactional internal/managed table.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 proutray
Solution 2 Olaf
Solution 3