内部表和外部表
内部表
概念:内部表是Hive中最基本也是最简单的表结构。所谓内部表就是直接在Hive中创建的表,并手动向其中添加数据。
案例:
建立一张表名为my_internal的内部表:
create table my_internal(id int , name string);
内部表创建时,将在HDFS的/user/hive/warehouse/下创建同名文件夹:
注意:
- 如果在Hive中删除内部表,HDFS相应的文件夹也会被一同删除。
外部表
概念:在Hive中创建表管理HDFS中已经存在的数据。
案例:
在我的HDFS上/hivetest/score/目录下有一个score.txt 的文件,里面记录了学生的考试成绩:
建表语句:
create external table score(name string,chinese string,math string,english string) row format delimited fields terminated by ' ' location '/hivetest/score