Hive DML(数据操作语言)操作指南

目录

DML(Data Manipulation Language)数据操作

 Load

1)语法

2)实操案例

 Insert

 将查询结果插入表中

1)语法

2)案例

 将给定Values插入表中

1)语法

2)案例

 将查询结果写入目标路径

1)语法

2)案例

 Export & Import

1)语法

2)案例


DML(Data Manipulation Language)数据操作

 Load

Load语句可将文件导入到Hive表中。

1)语法

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)];

关键字说明:

  1. local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。
  2. overwrite:表示覆盖表中已有数据,否则表示追加。
  3. partition:表示上传到指定分区,若目标是分区表,需指定分区。

2)实操案例

(0)创建一张表

hive (default)>
create table student(
  id int, 
  name string
) 
row format delimited fields terminated by '\t';

(1)加载本地文件到hive

hive (default)> load data local inpath '/opt/module/datas/student.txt' into table student;

(2)加载HDFS文件到hive中

①上传文件到HDFS

[lzl@hadoop12 ~]$ hadoop fs -put /opt/module/datas/student.txt /user/lzl

②加载HDFS上数据,导入完成后去HDFS上查看文件是否还存在

hive (default)> 
load data inpath '/user/lzl/student.txt' 
into table student;

(3)加载数据覆盖表中已有的数据

①上传文件到HDFS

hive (default)> dfs -put /opt/module/datas/student.txt /user/lzl;

②加载数据覆盖表中已有的数据

hive (default)> 
load data inpath '/user/lzl/student.txt' 
overwrite into table student;

 Insert

 将查询结果插入表中

1)语法
INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement;

关键字说明:

  1. INTO:将结果追加到目标表
  2. OVERWRITE:用结果覆盖原有数据
2)案例

(1)新建一张表

hive (default)> 
create table student1(
  id int, 
  name string
) 
row format delimited fields terminated by '\t';

(2)根据查询结果插入数据

hive (default)> insert overwrite table student3 
select 
  id, 
  name 
from student;

 将给定Values插入表中

1)语法
INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES values_row [, values_row ...]
2)案例
hive (default)> insert into table  student1 values(1,'wangwu'),(2,'zhaoliu');

 将查询结果写入目标路径

1)语法
INSERT OVERWRITE [LOCAL] DIRECTORY directory 
[ROW FORMAT row_format] [STORED AS file_format] select_statement;
2)案例
insert overwrite local directory '/opt/module/datas/student' ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
select id,name from student;

 Export & Import

Export导出语句可将表的数据和元数据信息一并导出到HDFS路径,Import可将Export导出的内容导入Hive,表的数据和元数据信息都会恢复。Export和Import可用于两个Hive实例之间的数据迁移。

1)语法

导出

EXPORT TABLE tablename TO 'export_target_path'

导入

IMPORT [EXTERNAL] TABLE new_or_original_tablename FROM 'source_path' [LOCATION 'import_target_path']

2)案例

导出

hive>
export table default.student to '/user/hive/warehouse/export/student';

导入

hive>
import table student2 from '/user/hive/warehouse/export/student';
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据深度洞察

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值