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中的数据文件都会被删除。