hive 外部表,内部表

create table test(id int,name string) row format delimited fields terminated by ',' ;

加载数据 load data local inpath '/home/test/test.txt' into table test;

如果建表没有指定location,就会在hive.metastore.warehouse.dir 路径下创建以表名为名的文件夹

在hive-site.xml中可以配置

<property>
   <name>hive.metastore.warehouse.dir</name>
   <value>/user/hive/warehouse</value>
</property>

drop table test; hadoop fs -ls /user/hive/warehouse 没有文件

外部表 

create external test(id int,name string) row format delimited fields terminated by ','  location '/user/hive/mytest';

加了external关键字 和location 可以不指定location还是会存到 user/hive/warehouse路径下;

load data local inpath '/home/test/test.txt' into table test;

drop table test;

hadoop fs -ls /user/hive/warehouse 发现有数据;

即:

  • 创建外部表需要添加 external 字段。而内部表不需要。
  • 删除外部表时,HDFS中的数据文件不会一起被删除。而删除内部表时,表数据及HDFS中的数据文件都会被删除。

猜你喜欢

转载自blog.csdn.net/qq_38250124/article/details/84491603