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 ,以后再做更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/143316.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松上手Docker:学习如何创建和运行自己的Docker容器

文章目录 轻松上手Docker&#xff1a;学习如何创建和运行自己的Docker容器容器的介绍Docker的技术架构容器的工作机制&#xff08;Docker&#xff09;容器的关键技术 - NamespaceNamespace隔离说明 容器的关键技术 - CgroupDocker环境搭建1&#xff09;安装基础软件包2&#xf…

十四,间接漫反射用到球体中

间接光照分为间接漫反射和间接镜面反射。 辐照度图是用来适用于间接漫反射的。 直射光也有漫反射&#xff0c;对比下两者。 直接光kD * albedo / PI * radiance * NdotL&#xff1b;其中radiance * NdotL是光照, 间接光&#xff1a; kD * texture(irradianceMap, N).rgb* al…

SD-MTSP:萤火虫算法(FA)求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、萤火虫算法&#xff08;FA&#xff09;简介 萤火虫算法(Firefly Algorithm&#xff0c;FA)是Yang等人于2009年提出的一种仿生优化算法。 参考文献&#xff1a;田梦楚, 薄煜明, 陈志敏, et al. 萤火虫算法智能优化粒子滤波[J]. 自动化学报, 2016, 42(001):89-97. 二、单仓…

八大排序详解

目录 1.排序的概念及应用 1.1 排序的概念 1.2 排序的应用 1.3 常见的排序算法 2.常见排序算法的实现 2.1 直接插入排序 2.1.1 基本思想 2.1.2 动图解析 2.1.3 排序步骤&#xff08;默认升序&#xff09; 2.1.4 代码实现 2.1.5 特性总结 2.2 希尔排序 2.2.1 基本思…

HarmonyOS开发:封装一个便捷的Log工具类

前言 日志打印&#xff0c;没什么好说的&#xff0c;系统已给我们提供&#xff0c;且调用也是非常的简单&#xff0c;我们封装的目的&#xff0c;一是扩展&#xff0c;打印一些不常见的类型&#xff0c;比如格式化json&#xff0c;使得日志看起来比较好看&#xff0c;二是&…

GEO生信数据挖掘(二)下载基因芯片平台文件及注释

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 下载平台文件 1.AnnotGPL参数改为TRUE,联网下载芯片平台的soft文件。&#xff08;国内网速奇慢经常中断&#xff09; 2.手工去GEO官网下载 转换芯片探针ID为gene name 拓…

智能合约经典漏洞案例,xSurge 重入漏洞+套利 综合运用

智能合约经典漏洞案例&#xff0c;xSurge 重入漏洞套利 综合运用 1. 事件介绍 xSurge 被攻击事件发生在 2021-08-16 日&#xff0c;距离今天已经近 1 年了&#xff0c;为什么还会选择这个事件进行分析&#xff1f;主要是这个攻击过程很有意思&#xff0c;有以下的几点思考 使…

UG\NX二次开发 通过点云生成曲面 UF_MODL_create_surf_from_cloud

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 Rlgun 订阅本专栏,非常感谢。 简介 有网友想做一个通过点云生成曲面的程序,我们也试一下 效果 代码 #include "me.hpp" /*HEAD CREATE_SURF_FROM_CLOUD CCC UFUN */

【2023年11月第四版教材】第15章《风险管理》(合集篇)

第15章《风险管理》&#xff08;合集篇&#xff09; 1 章节说明2 管理基础2.1 风险的属性2.2 风险的分类★★★2.3 风险成本★★★2.4 管理新实践 3 管理过程4 管理ITTO汇总★★★5 过程1-规划风险管理6 过程2-识别风险6.1 识别风险★★★6.2 数据收集★★★6.3 数据分析★★★…

基于微信小程序快递取件上门预约服务系统设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)

文章目录 前言运行环境说明用户的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图详细视频演示代码参考论文参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;…

范数Norm-衡量向量大小的方法

性质 非负性: 范数的值总是非负的,且当且仅当向量全为零时,范数的值为零。 齐次性: 对于任意实数α,有 三角不等式: 对于任意向量x和y,有 常见范数 L1: 向量所有元素绝对值的和,权重稀疏 L2:欧几里得范数,权重平滑 无穷范数:表示向量中最大的元素 为什么使用范…

【VUE复习·6】监视属性watch:用途、两种写法、简写、应用时注意事项(重点)、深度监视(重点)

总览 1.监视属性是用来干什么的&#xff1f; 2.监视属性的两种写法 3.应用时注意事项 4.深度监视 一、监视属性是用来干什么的&#xff1f; 1.用途 监视一个值&#xff08;可以是基本属性 data&#xff0c;或者是计算属性 computed&#xff09;是否被改变。如果此值被改变&…

C语言-变量与数据类型

一、基本语法 1、注释 注释&#xff08;Comments&#xff09;可以出现在代码中的任何位置&#xff0c;用来向用户提示或解释代码的含义。程序编译时&#xff0c;会忽略注释&#xff0c;不做任何处理。 C 语言有两种注释方式&#xff1a; &#xff08;1&#xff09;单行注释 …

3+单基因泛癌+铜死亡纯生信思路

今天给同学们分享一篇3单基因泛癌铜死亡纯生信思路的生信文章“Systematic pan-cancer analysis identifies SLC31A1 as a biomarker in multiple tumor types”&#xff0c;这篇文章于2023年3月27日发表在BMC Med Genomics 期刊上&#xff0c;影响因子为3.622。 溶质载体家族3…

【Unity】简单的深度虚化shader

【Unity】简单的深度虚化shader 实现效果 可以用于对地图场景边界的白模处理 实现方法 1.关键方法 UnityObjectToClipPos&#xff1a;将物体坐标转换为屏幕坐标 LinearEyeDepth&#xff1a;将屏幕坐标中的z值转换为实际的深度值 saturate&#xff1a;将值规范到0~1之间&a…

【AI视野·今日Robot 机器人论文速览 第四十一期】Tue, 26 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 26 Sep 2023 Totally 73 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Extreme Parkour with Legged Robots Authors Xuxin Cheng, Kexin Shi, Ananye Agarwal, Deepak Pathak人类可以通过以高度动态…

成为吃鸡战场的王者!分享顶级战术干货,助您提高战斗力!

各位吃鸡战场的玩家们&#xff0c;欢迎来到本视频&#xff01;在这里&#xff0c;我将为您呈现一些与众不同的吃鸡干货&#xff0c;帮助您提高战斗力、轻松吃鸡&#xff01; 首先&#xff0c;让我们谈一谈作图工具推荐。绝地求生作图工具是吃鸡玩家们的必备利器。我将给大家推荐…

IDEA运行第一个Java简单程序(新建项目到运行类)

目录 前言 一、准备工作 JDK下载安装 1.IDEA下载安装 二、IDEA建立项目 &#xff08;一&#xff09;新建项目&#xff08;银河系&#xff09; &#xff08;二&#xff09;新建模块&#xff08;地球&#xff09; &#xff08;三&#xff09;新建包&#xff08;国家&#…

1.3python基础语法——PyCharm

1&#xff09;PyCharm的作用 python的集成开发环境&#xff0c;功能如下&#xff1a; Project管理 智能提示 语法高亮 代码跳转 调试代码 解释代码(解释器) 框架和库 2&#xff09;下载与安装 下载地址&#xff1a;http://www.jetbrains.com/pycharm/download/#sectionwind…

查询表中的全部列的数据

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 语法格式: select from * 表名; 说明: * 表示所有列 由于不写where子句&#xff0c;表示无条件&#xff0c;找到所有的行&#xff01; 准备工作:执…