内部表和外部表的主要区别在于数据的存储方式。
外部表:外部表的存储在hdfs中,是我们指定的文件目录,当我们删除数据或者删除分区的时候不会将元数据删除,数据还会在hdfs目录中,我们还可以进行数据挂载。
内部表:内部表的存储是在hdfs的默认目录下,当我们删除数据或者删除分区的时候会将元数据删除,数据文件也会被删除。
DESCRIBE FORMATTED table_name
运行指令找到table_type 如果为MANAGED_TABLE,那就是内部表,
如果是EXTERNAL_TABLE,那就是外部表
CREATE EXTERNAL TABLE external_table_name ( column1 data_type, column2 data_type, ... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/path/to/table'; CREATE TABLE internal_table_name ( column1 data_type, column2 data_type, ... ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';