当前位置: 首页 > news >正文

Hive【Hive(二)DML】

 启动 hive 命令行:

hive

DML 数据操作

1、数据导入

1.1、向表中装载数据(load)

语法:

hive> load data [local] inpath '数据的path' [overwrite] into table student [partition (partcol1=val1,…)];

(1)load data:表示加载数据
(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表
(3)inpath:表示加载数据的路径
(4)overwrite:表示覆盖表中已有数据,否则表示追加
(5)into table:表示加载到哪张表
(6)student:表示具体的表
(7)partition:表示上传到指定分区 

创建一张表student: 

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

注意:如果不切换数据库,默认使用的是 default 数据库,并且保存路径是hdfs:///user/hive/warehouse/student/ ;如果使用了 db_hive1 ,则保存路径为:hdfs:///user/hive/warehouse/db_hive1/student/

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

 HDFS 下出现了我们的文件。

2、加载hdfs文件到hive。
load data inpath ‘/user/careate/student.txt’ into table student;

3、覆盖式导入:
load data local inpath '/opt/module/hive-3.1.2/datas/student.txt' overwrite into table default.student;

1.2、 通过查询语句向表中插入数据(Insert)

1)创建一张表
create table student1(id int, name string) row format delimited fields terminated by ‘\t’;
2)基本模式插入数据
insert into table student1 values(1011,‘ldx’),(1012,‘ysy’);
3)根据查询结果插入数据
insert into table student1select id, name from student where id < 1006;
insert into 不会删除原表中的数据,只是追加到后面。 
insert overwrite table student1select id, name from student where id < 1006;

使用 insert overwrite 的话,原表中的数据被删除,被student 表中的数据覆盖。


1.3、查询语句中创建表并加载数据(As Select)

create table student3 
as select id,name from student;

Hive 不论是创建表还是查询数据(除了select * 都会产生 mapreduce 任务),所以执行时间不会很快。


1.4、创建时指定 location 来加载数据路径

这种方法就是我们上一篇讲的建表语句中,通过 location 关键字来指定表的数据源(其实也变相指定了我们表的存储路径),我们建表时指定了数据源路径下文件的解析方法(比如以 '\t' 为分割符号)。

create table if not exists student(id int,name string
)
row format delimitedfields terminated by '\t'
location 'hdfs:///user/hive/warehouse/student';

该表一建立,我们在 hdfs 下的 /user/hive/warehouse/student/ 目录下放到文件就变成了表内容的源文件,解析方法就是以 '\t' 为分隔符。

1.5、Import 数据到指定 Hive表

import table student from '\user\hive\warehouse\export\student';


数据导出

2.1、 Insert 导出

1)将查询结果导出到本地
-- 导出student表到linux本地目录
insert overwrite local directory '/opt/module/hive-3.1.2/datas'
select * from student;
-- 导出结果
-- 1001lyh
-- 1002mht
-- 1003lj
-- 1004my
2)将查询结果格式化后导出到本地
-- 格式化后导出到linux本地目录
insert overwrite local directory '/opt/module/hive-3.1.2/datas/export/student'
row format delimited fields terminated by '\t'
select * from student;
-- 格式化导出结果
-- 1001	lyh
-- 1002	mht
-- 1003	lj
-- 1004	my

导出结果:

 

 

 3)将查询结果格式化后导出到 HDFS(少了 local 关键字)
-- 将查询结果格式化导出到 hdfs
insert overwrite directory '/user/hive/warehouse/export/student'
row format delimited fields terminated by '\t'
select * from student1;

        注意:insert 导出,导出的目录不用自己提前创建,hive会帮我们自动创建。但是因为是 overwrite ,所以要小心导出的目录中原本存不存在数据,以免覆盖造成误删。

导出结果:


2.2、Hadoop 命令导出到本地

使用hadoop命令将我们Hive表的hdfs目录下的文件导出到本地(linux)。

hadoop fs -get /user/hive/warehouse/student/student.txt /opt/module/hive/datas/export/student.txt

2.3、Hive Shell 命令导出

这里不需要进入 hive 命令行,因为我们使用了 hive -e

hive -e 'select * from default.stduent;' >> /opt/module/hive/datas/export/student1.txt

导出结果:

         我们发现,导出的 studen2.txt 中,包含了大量的日志信息,必须通过配置日志等级才能省去它,个人感觉还是不用这种方法为好。

2.4、export 导出到 HDFS

-- export 导出到hdfs
export table student1 to
'/user/hive/warehouse/export/student1';

导出的结果是一个 student1 目录,下面包含了两个

其中,_metadata 是元数据信息,而 data 是一个目录,下面存放着名为 000000_0 的文件,打开是我们该 Hive 表的内容。

1.5、Sqoop 导出

还没学 Sqoop ,以后再做更新。

相关文章:

Hive【Hive(二)DML】

启动 hive 命令行&#xff1a; hive DML 数据操作 1、数据导入 1.1、向表中装载数据&#xff08;load&#xff09; 语法&#xff1a; hive> load data [local] inpath 数据的path [overwrite] into table student [partition (partcol1val1,…)];&#xff08;1&#x…...

HTTP的请求方法,空行,body,介绍请求报头的内部以及粘包问题

目录 一、GET与POST简介 二、空行和body 三、初识请求报头以及粘包问题 四、认识请求报头剩余部分 一、GET与POST简介 GET https://www.sogou.com/HTTP/1.1 请求报文中的方法&#xff0c;是最常规的方法&#xff08;获取资源&#xff09; POST&#xff1a;传输实体主体的方法…...

win10 ip设置

百度安全验证...

alibaba dragonwell jdk

阿里巴巴Dragonwell8快速指南 dragonwell-project/dragonwell8 Wiki GitHub 阿里巴巴Dragonwell8用户指南 dragonwell-project/dragonwell8 Wiki GitHub 阿里巴巴Dragonwell8常见问题 dragonwell-project/dragonwell8 Wiki GitHub...

jvm内存分配与回收策略

自动内存管理 解决两个问题 自动给对象分配内存 对象一般堆上分配&#xff08;而实际上也有可能经过即时编译后被拆散为标量类型并间接地在栈上分配&#xff09; 新生对象通常会分配在新生代&#xff0c;少数情况下&#xff08;例如对象大小超过一定阈值&#xff09;也可能…...

【Vue2和Vue3的双向绑定区别】

Vue2和Vue3的双向绑定区别 vue2 双向绑定原理vue3 双向绑定原理Vue2和Vue3的双向绑定存在以下区别&#xff1a; vue2 双向绑定原理 Vue2 双向绑定的实现主要依赖于 Object.defineProperty() 方法和观察者模式&#xff0c;其中 Object.defineProperty() 方法用于定义属性的 get…...

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

前言 &#x1f493;作者简介&#xff1a; 加油&#xff0c;旭杏&#xff0c;目前大二&#xff0c;正在学习C&#xff0c;数据结构等&#x1f440; &#x1f493;作者主页&#xff1a;加油&#xff0c;旭杏的主页&#x1f440; ⏩本文收录在&#xff1a;再识C进阶的专栏&#x1…...

windows WSL配置cuda,pytorch和jupyter notebook

机器配置 GPU: NVIDIA Quadro K2000 与 NVIDIA 驱动程序捆绑的CUDA版本 但按照维基百科的描述&#xff0c;我的GPU对应的compute capability3.0&#xff0c;允许安装的CUDA最高只支持10.2&#xff0c;如下所示。 为什么本地会显示11.4呢&#xff1f;对此&#xff0c;GPT是这…...

回调地狱的产生=>Promise链式调用解决

常见的异步任务包括网络请求、文件读写、定时器等。当多个异步任务之间存在依赖关系&#xff0c;需要按照一定的顺序执行时&#xff0c;就容易出现回调地狱的情况。例如&#xff0c;当一个网络请求的结果返回后&#xff0c;需要根据返回的数据进行下一步的操作&#xff0c;这时…...

【设计模式】六、建造者模式

文章目录 需求介绍角色应用实例建造者模式在 JDK 的应用和源码分析java.lang.StringBuilder 中的建造者模式 建造者模式的注意事项和细节 需求 需要建房子&#xff1a;这一过程为打桩、砌墙、封顶房子有各种各样的&#xff0c;比如普通房&#xff0c;高楼&#xff0c;别墅&…...

SpringBoot 可以同时处理多少请求

一、前言 首先&#xff0c;在Spring Boot应用中&#xff0c;我们可以使用 Tomcat、Jetty、Undertow 等嵌入式 Web 服务器作为应用程序的运行容器。这些服务器都支持并发请求处理的能力。另外&#xff0c;Spring Boot 还提供了一些配置参数&#xff0c;可以对 Web 服务器进行调…...

嵌入式Linux应用开发-驱动大全-第一章同步与互斥②

嵌入式Linux应用开发-驱动大全-第一章同步与互斥② 第一章 同步与互斥②1.3 原子操作的实现原理与使用1.3.1 原子变量的内核操作函数1.3.2 原子变量的内核实现1.3.2.1 ATOMIC_OP在 UP系统中的实现1.3.2.2 ATOMIC_OP在 SMP系统中的实现 1.3.3 原子变量使用案例1.3.4 原子位介绍1…...

EasyExcel的源码流程(导入Excel)

1. 入口 2. EasyExcel类继承了EasyExcelFactory类&#xff0c;EasyExcel自动拥有EasyExcelFactory父类的所有方法&#xff0c;如read()&#xff0c;readSheet()&#xff0c;write()&#xff0c;writerSheet()等等。 3. 进入.read()方法&#xff0c;需要传入三个参数(文件路径…...

基于 jasypt 实现spring boot 配置文件脱敏

前言 在项目构建过程中&#xff0c;保护敏感信息的安全性至关重要&#xff0c;为了提高系统的安全性能&#xff0c;我们采用了Jasypt来对配置文件中的敏感信息进行加密处理&#xff0c;以确保系统的机密信息不被轻易泄露。 步骤 添加Maven依赖 首先&#xff0c;我们需要添加…...

Python——ASCII编码与Unicode(UTF-8,UTF-16 和 UTF-32)编码

Python3 Python——ASCII编码与Unicode&#xff08;UTF-8&#xff0c;UTF-16 和 UTF-32&#xff09;编码 文章目录 Python3一、编码与编码格式二、ASCII编码与UTF-8编码&#xff08;UTF-16 和 UTF-32编码&#xff09;三、ASCII 字符串和 Unicode 字符串 最近看Python程序的文件…...

【多媒体技术与实践】音频信息获取和处理——编程题汇总

1&#xff1a;音频信息数据量计算 已知采样频率&#xff08;单位KHz&#xff09;、量化位数、声道数及持续时间&#xff08;单位分钟&#xff09;&#xff0c;求未压缩时的数据量&#xff08;单位MB&#xff09;. 例如&#xff1a; 输入&#xff1a; 22.05 16 2 3 &#xff…...

堆优化迪氏最短单源路径原理及C++实现

时间复杂度 O(ElogE)&#xff0c;E是边数。适用与稀疏图。 使用前提 边的权为正。可以非连通&#xff0c;非连通的距离为-1。 原理 优选队列&#xff08;小根堆&#xff09;记录两个数据&#xff1a;当前点到源点距离&#xff0c;当前点。先处理距离小的点&#xff1b;如果…...

Leetcode202. 快乐数

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0…...

【MySQL】MySql常见面试题总结

目录 一、什么是sql注入 二、sql语句的执行流程 三、内连接和外连接的区别 四、Union和Union All 有什么区别 五、MySql如何取差集 六、DELETE和TRUNCATE有什么区别 七、count&#xff08;*&#xff09;和count&#xff08;1&#xff09;的区别 八、MyISAM和InnoDB的区…...

【Java 进阶篇】JDBC PreparedStatement 详解

在Java中&#xff0c;与关系型数据库进行交互是非常常见的任务之一。JDBC&#xff08;Java Database Connectivity&#xff09;是Java平台的一个标准API&#xff0c;用于连接和操作各种关系型数据库。其中&#xff0c;PreparedStatement 是 JDBC 中一个重要的接口&#xff0c;用…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...

C++11 constexpr和字面类型:从入门到精通

文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...