Hive系列-DML 数据操作
数据导入
向表中装载数据(Load)
语法
load data [local] inpath '数据的 path' [overwrite] into table
car [partition (partcol1=val1,…)];
- load data:表示加载数据
- local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表
- inpath:表示加载数据的路径
- overwrite:表示覆盖表中已有数据,否则表示追加
- into table:表示加载到哪张表
- car:表示具体的表
- partition:表示上传到指定分区
操作用例
创建一张表
create table car(id string, name string) row format delimited fields terminated by '\t';
加载本地文件到 hive
load data local inpath '/data/apps/hive/datas/car.txt' into table default.car;
加载 HDFS 上数据到 hive
load data inpath '/data/hive/car.txt' into table default.car;
加载数据覆盖表中已有的数据
load data inpath '/data/hive/car.txt' overwrite into table default.car;
通过查询语句向表中插入数据(Insert)
创建一张表
create table car1(id int, name string) row format delimited fields terminated by '\t';
插入数据
insert into table car1 values(1,'tesla'),(2,'bmw');
基本模式插入(根据单张表查询结果)
insert overwrite table car1
select id, name from car where month='201709';
- insert into:以追加数据的方式插入到表或分区,原有数据不会删除
- insert overwrite:会覆盖表中已存在的数据
查询语句中创建表并加载数据(As Select)
create table if not exists car3 as select id, name from car;
创建表时通过 Location 指定加载数据路径
- 上传数据到 hdfs 上
dfs -mkdir /car;
dfs -put /data/car.txt /car;
- 创建表,并指定在 hdfs 上的位置
create external table if not exists car5( id int, name string
)
row format delimited fields terminated by '\t' location '/car;
- 查询数据
希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您