一、创建表
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';