一. Hive内表–从本地导入
1.创建一张内部表
create table inner_table(id int, name string) row format delimited fields terminated by ',';
注意:delimited fields terminated by ',' --- 以逗号结尾的分隔字段
2.将本地txt文件导入
load data local inpath "/home/temp/student.txt" into inner_table;
3.查看hdfs的文件目录
4. 删掉表
drop table inner_table;
5.再次查看hdfs目录,文件已经不在了
二. Hive内表–从hdfs导入
1.创建一张内部表
create table inner_table(id int, name string) row format delimited fields terminated by ',';
2.在hdfs上任意一个目录上传文件
2.将hdfs的/tmp目录的文件导入到inner_table表
load data inpath "/tmp/student.txt" into table inner_table; //和本地相比少了个local参数
3.查看hdfs的/tmp/目录下的student.txt文件–已经被转移,不存在了
4. 查看inner_table表对应的hdfs目录–已经导入
5. 删掉表
drop table inner_table;
6.再次查看inner_table对应的hdfs目录,文件已经不在了
三. Hive外部表–从本地导入
1.创建一张外部表
create external table external_table(id int, name string) row format delimited fields terminated by ',';
2.将本地txt文件导入
load data local inpath "/home/temp/student.txt" into table external_table;
3.查看hdfs的文件目录
4. 删掉表
drop table external_table;
5.再次查看hdfs目录 – 文件还在
四. Hive外部表–从hdfs导入
1.创建一张内部表
create external table my_external_table(id int, name string) row format delimited fields terminated by ',';
2.在hdfs上任意一个目录上传文件
2.将hdfs的/tmp目录的文件导入到my_external_table表
load data inpath "/tmp/student.txt" into table my_external_table; //和本地相比少了个local参数
3.查看hdfs的/tmp/目录下的student.txt文件–已经被转移,不存在了
4. 查看my_external_table表对应的hdfs目录–已经导入
5. 删掉表
drop table my_external_table;
6.再次查看my_external_table对应的hdfs目录–文件还在
五. 结论
1.不管是内部表还是外部表,从hdfs上导入数据到对应的表的时候,原目录下的数据都会被转移到新的目录
2.内部表在删除表的时候,hdfs上的数据一并删除;
3.外部表在删除表的时候,hdfs上的数据不会删掉;