Hive中表的类型
1、内部表(受控表):当删除内部表的时候,HDFS上的数据以及元数据都会被删除
2、外部表:当删除外部表的时候,HDFS上的数据不会被删除但是元数据会被删除
3、临时表(测试环境)临时表的声明周期是一次会话
4、分区表:将一批数据分成多个目录来存储
5、分桶表:对列值取哈希值的方式,将不同数据放到不同文件中存储
Hive的基本数据类型
数据类型 | 注释 |
TINYINT | -128 to 127 |
SMALLINT | -32768 to 32767 |
INT | -2,147,483,648 to 2,147,483,647 |
BIGINGT | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
FLOAT | 4-byte |
DOUBLE | 8-byte |
DECIMAL | 38位精度 |
TIMESTAMP | yyyy-MM-dd HH:mm:SS |
DATE | 日期:年月日 |
一、内部表操作
1、创建表
创建表方式一:
CREATE TABLE tableOne(
id INT,
name STRING,
age INT,
gfs ARRAY<STRING>,
address MAP<STRING,STRING>,
info STRUCT<country:String,province:String,city:String>
)
ROW FORMAT DELIMITED
#字段之间的分隔符 “ ”
FIELDS TERMINATED BY ' '
#集合元素之间的分割符“,”
COLLECTION ITEMS TERMINATED BY ','
#map中 KV分隔符“:”
MAP KEYS TERMINATED BY ':'
#行与行之间的分隔符“\n”
LINES TERMINATED BY '\n'
#设置元数据的位置--若不设置默认就在Hive的工作目录区
LOCATION "/hive"
#跳过第一行
TBLPROPERTIES("SKIP.HEADER.line.COUNT"="1");
#加载本地数据
load data local inpath '/root/gfs.txt' into table tableOne;
创建表方式二
create table tableTwo like tableOne;只是创建表结构
创建表方式三
create table tableTwo AS SELECT id,name,gfs,address from tableOne; 会创建相应的表结构,并且插入数据
2 插入数据
1、inse