内部表和外部表的区别:内部表的生命周期以及数据都由hive进行管理,换句话说就是内部表的表结构和表中的数据都是由hive进行管理的。如果删除了内部表,那么内部表中的数据也会别删除。外部表只有表结构是hive进行管理的,数据不是。外部表的数据归hdfs所有。如果删除hive中的外部表,那么表结构会删除,但是不会删除表中的数据。一般的,在使用的时候外部表使用的比较多。直接在一个数据上建表,然后进行数据处理即可。
自己定义一个文件目录,存放sql文件,导入导出文件:
1.创建内部表:
hive-CreateTable内容:
use hive_test;
create table if not exists persion(
name string,
age int,
add string
)
row format delimited fields terminated by ','; //数据文件分隔符
2.创建外部表:
hive-CreateExternalTable内容:
use hive_test;
create external table if not exists Student(
name string,
age int,
addr string
)
ROW FORMAT DELIMITED