Hive——DML(Data Manipulation Language)数据操作语句用法详解

server/2024/10/21 1:05:37/

DML

1.Load

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

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

关键字说明:

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

hive_15">1.加载本地文件到hive

本地文件路径:
在这里插入图片描述
执行load语句:
load data local inpath '/opt/module/hive-3.1.3/datas/student.txt' into table student;
在这里插入图片描述

查询数据(select * from student):
在这里插入图片描述

在这里插入图片描述

2.加载数据覆盖表中已有的数据

load data local inpath '/opt/module/hive-3.1.3/datas/student.txt' overwrite into table student;
在这里插入图片描述
在这里插入图片描述

hive_33">3.加载HDFS文件到hive

上传文件到HDF根目录:
在这里插入图片描述
在这里插入图片描述
执行加载文件语句:
load data inpath '/student.txt' into table student;
在这里插入图片描述
在这里插入图片描述

从本地加载是copy的过程,从HDFS加载是move的过程。


2.Insert

1.将查询结果插入表中

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

  • INTO将结果追加到目标表
  • OVERWRITE用结果覆盖原有数据

(1)新建一张表

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

在这里插入图片描述

(2)根据查询结果插入数据
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述


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');

在这里插入图片描述
在这里插入图片描述


3.将查询结果写入目标路径

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

insert overwrite local directory '/opt/module/datas/student' ROW FORMAT S ERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
select id,name from student;

在这里插入图片描述
在这里插入图片描述


3.Export&Import

  • Export导出语句可将表的数据和元数据信息一并导出到HDFS的路径
  • Import可将Export导出的内容导入Hive,表的数据和元数据信息都会恢复
  • ExportImport可用于两个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';

在这里插入图片描述


http://www.ppmy.cn/server/19923.html

相关文章

MIT6.824|课程前置知识

为了让技术栈更宽一点,想学习一下分布式系统,顺便下定决心学习一下go语言吧! 由于还没有开始学,这里只总结相关的资料,后续会慢慢进化成MIT6.824课程导学。 Go语言 MIT6.824课程是用go语言来完成的,所以了…

机器人系统能用MQTT5.0代替ROS2吗?

前言 ROS2是目前最主流的机器人系统,但由于ROS2的学习曲线比较徒陗,而且对于资源受限的系统并不友好;而MQTT5.0是最新的MQTT消息传输协议,为现代IoT提供了更友好的支持,下面讨论MQTT5.0和ROS2结合使用,或机…

前端提高篇(二十四)JS进阶18对象属性的高级用法

x:1, y:2, } Object.defineProperty(obj1, ‘z’,{ value:3, writable:true, enumerable:true, configurable:true, }) for (var i in obj1){ console.log(i ’ : ’ obj1[i]); } 运行效果: 不可枚举时: var obj1 { x:1, y:2, } Obj…

基于EasyExcel实现的动态表头工具类

工具类 package net.lesscoding.utils;import cn.hutool.core.bean.BeanUtil; import com.alibaba.excel.EasyExcel; import com.google.common.collect.Lists;import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.Uns…

「ETL趋势」FDL数据中心库/表查看和调试功能上线、数据源新增支持MongoDB写入

FineDataLink作为一款市场上的顶尖ETL工具,集实时数据同步、ELT/ETL数据处理、数据服务和系统管理于一体的数据集成工具,进行了新的维护迭代。本文把FDL4.1.6最新功能作了介绍,方便大家对比:(产品更新详情:…

OneFlow概念清单、以及优缺点

1. 介绍 OneFlow是由华为提出的开源深度学习框架,旨在提供高效、易用、灵活和可扩展的解决方案。其设计理念是为了在大规模分布式训练环境下提供最佳性能。 2. 核心特性 分布式训练支持: OneFlow内置了高效的分布式训练策略,可轻松扩展到多…

C++11 数据结构5 队列的概念,队列的顺序存储,实现,测试

一,队列的概念 队列是一种特殊的受限制的线性表。 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出的t(First In First Out)的线性表,简称FIF…

Linux驱动开发——(八)Linux异步通知

目录 一、异步通知简介 二、信号处理 2.1 驱动程序中的处理 2.1.1 fasync_struct结构体 2.1.2 fasync操作函数 2.1.3 kill_fasync函数 2.2 应用程序中的处理 三、驱动代码 一、异步通知简介 异步通知的核心就是信号。信号类似于硬件上使用的中断,只不过信号…