【大数据入门 | Hive】DML(Data Manipulation Language)数据操作

1. Load语句

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

1.1 语法

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

关键字说明:

(1)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。

(2)overwrite:表示覆盖表中已有数据,否则表示追加。

(3)partition:表示上传到指定分区,若目标是分区表,需指定分区。

1.2 案例:

(0)创建一张表

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

(1)加载本地文件到hive

load data local inpath '/opt/module/datas/student.txt' into table student;

(2)加载HDFS文件到hive中

①上传文件到HDFS

hadoop fs -put /opt/module/datas/student.txt /user/atguigu

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

load data inpath '/user/atguigu/student.txt' 
into table student;

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

①上传文件到HDFS

dfs -put /opt/module/datas/student.txt /user/atguigu;

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

load data inpath '/user/atguigu/student.txt' 
overwrite into table student;

2. Insert语句

2.1 将查询结果插入表中

语法:

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

关键字说明:

(1)INTO:将结果追加到目标表

(2)OVERWRITE:用结果覆盖原有数据

2.2 将给定的values插入表中

语法:

INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1[=val1], partcol2[=val2] ...)] VALUES values_row [, values_row ...]

案例:

hive (default)> insert into table  student1 values(1,'wangwu'),(2,'zhaoliu');

2.3 将查询结果写入目标路径

语法:

INSERT OVERWRITE [LOCAL] DIRECTORY directory
  [ROW FORMAT row_format] [STORED AS file_format] select_statement;

3. export&import

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

语法:

--导出
EXPORT TABLE tablename TO 'export_target_path'

--导入
IMPORT [EXTERNAL] TABLE new_or_original_tablename FROM 'source_path' [LOCATION 'import_target_path']

案例:

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

--导入
hive>
import table student2 from '/user/hive/warehouse/export/student';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值