内部表和外部表的区别:
删除外部表的时候只会删除表的元数据而HDFS上的数据不会被删除。
删除内部表的时候会删除表的元数据和HDFS上的数据。
外部表相对来说更安全些。
创建外部表的指令:
create EXTERNAL table test2;(若不加EXTERNAL则默认创建的是内部表)
查看当前表属于哪种表的指令:
desc formatted test(查询的表名)
显示:
Table Type: MANAGED_TABLE(内部表)
EXTERNAL_TABLE(外部表)
修改当前表类型的指令:
alter table test(表名) set tblproperties('EXTERNAL'='FALSE')
注:FALSE表示将表修改为内部表,TRUE表示将表修改为外部表