写的不到位的地方,欢迎评论指出不足之处
1、创建数据库
create database test;2、创建内部表(设置分隔符)
fields 字段分隔符,collection 数组连接符,map keys的分隔符
create table psn
(
id int,
name string,
likes array<string>,
address map<string,string>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':';3、在本地插入数据 ( 文件地址是 Linux 中的地址,因为有关键字 Local )
load data local inpath '/home/hivedata.txt' into table psn;4、在HDFS插入数据 ( 文件地址是 hdfs 中的地址 )
load data inpath '/home/hivedata.txt' into table psn;两效果都能插入数据

5、创建外部表(设置分隔符)
fields 字段分隔符,collection 数组连接符,map keys 分隔符,location 数据位置
create external table psnfq
(
id int,
name string,
likes array<string>,
address map<string,string>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
location '/fqdata';

- 内部表与外部表
- 创建
- 内部表创建时,数据存储在hive的默认目录中
- 外部表创建时,需要制定 external 的关键字同时需要制定 location 存储目录
- 删除
- 内部表删除时,将数据和元数据删除
- 外部表删除时,只会删除元数据,不会删除数据
- 场景
- 内部表,先建表再插数据
- 外部表,可随意
- 注
- 具体根据业务决定,但外部表用的比较多
















