Hive 的管理表和外部表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yulei_qq/article/details/82217109

一、创建表

hive 中可以按照如下方式创建hive 表.

create table if not exists ts.t1 (
   name string comment '学生姓名',
   score float comment '学生分数',
   address  struct<street:string ,city:string,state:string,zip:int> comment 'home address')
 comment '学生表'
 location  '/user/hive/my/t1'
 tblproperties('creator'='me','created_at'='2018-08-30 10:10:00');

在hdfs 存放目录如下:

hive中表分为管理表和外部表, 对于管理表,当hive 删除表时,也会删除表中存放的数据.

可以使用 describe extended t1  查看表是管理表还是外部表.

外部表:

下面的语句将创建一个外部表,并且读取所有hdfs上位于 /user/data 目录下以逗号分隔的文件.

create external table if not exists stu(
  id int ,
  name string,
  age  int )
  row format delimited fields terminated by ','
  location '/user/data';

其中student.txt 文件内容如下:

hive> dfs -cat /user/data/* ;
1,tom,12
2,hameimei,13
3,lilei,14
4,mayun,25

对于管理表,用户还可以对yi一张存在的表进行表结构复制(而不会复制数据):

create external table if not exists t2  
like  stu
location '/user/data';

猜你喜欢

转载自blog.csdn.net/yulei_qq/article/details/82217109