您现在的位置是:首页 >技术杂谈 >【大数据之Hive】十、Hive之DML(Data Manipulation Language)数据操作语言网站首页技术杂谈

【大数据之Hive】十、Hive之DML(Data Manipulation Language)数据操作语言

阿宁呀 2024-10-13 12:01:04
简介【大数据之Hive】十、Hive之DML(Data Manipulation Language)数据操作语言

1 Load

将文件导入Hive表中。
语法:

hive>load data [local] inpath 'filepath' [overwrite] into table tablename [partition (partcol1=val1, ...)];

关键字说明:
(1)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到HIve表。
(2)overwrite:表示覆盖表中已有数据,否则表示追加。
(3)partition:表示上传到指定分区,若目标是分区表则需要指定分区。
如:

-- 先创建一张表:
create table student(
    id int,
    name string
)
row format delimited fields terminated by '	';

-- 加载本地文件到hive:
load data local inpath '/opt/module/hive/datas/student.txt' into table student;

-- 加载HDFS文件到hive:
    --上传文件到HDFDS:
hadoop fs -put /opt/module/hive/datas/student.txt /user/liaoyanxia
    -- 加载HDFS上数据,导入完成后去HDFS上查看文件是否存在:
load data inpath '/user/liaoyanxia/student.txt' into table student;

-- 加载数据覆盖表中已有数据:
    -- 上传文件到HDFS:
dfs -put /opt/module/datas/student.txt /user/liaoyanxia;
    -- 加载数据覆盖表中已有数据:
load data inpath '/user/liaoyanxia/student.txt' overwrite into table student;

2 Insert

2.1 将查询值插入表中

语法:

insert (into | overwrite) table tablename [partition (partcal1=val1, ...)] select_statement;

关键字说明:
(1)into:将结果追加到目标表。
(2)overwrite:用结果覆盖原有数据。
如:

-- 先创建一张表:
create table student1(
    id int,
    name string
)
row format delimited fields terminated by '	';

--根据查询结果插入数据:
insert overwrite table student1 select id,name from student;

2.2 将给定的value插入表中

语法:

insert (into | overwrite) table tablename [partition (partcal1=[val1], ...)] values values_row [(index,'values_row'), ...];

如:

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

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

语法:

insert overwrite [local] directory directory [row format roe_format] [stored ass file_format] select_statement;

如:

insert overwrite local directory '/opt/module/hive/datas/student' row format serde 'org.apache.hadoop.hive.serde2.JsonSerDe' select id,name from student;

3 Export & Import

  Export到此处语句将表的数据和元数据信息导出到HDFS路径;Import将Expot导出的内容导入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'];

如:

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

-- 导入:
import table student2 from 'user/hive/warehouse/export/student';
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。