大数据技术之Hive3

news2024/11/26 19:55:09

目录标题

    • 5、DML 数据操作
      • 5.1 数据导入
        • 5.1.1 向表中装载数据load
        • 5.1.2 通过查询语句向表中插入数据insert
        • 5.1.3 查询语句中创建表并加载数据
        • 5.1.4 创建表时通过 Location 指定加载数据路径
      • 5.2 数据导出
        • 5.2.1 insert导出
        • 5.2.2 Hadoop 命令导出到本地
      • 5.3 清除表中数据(Truncate)
    • 6、查询
      • 6.1 注意点
      • 6.2 笛卡尔积
        • 6.2.1 笛卡尔积会在下面条件中产生
      • 6.3 分桶
        • 6.3.1 分桶表数据存储
      • 6.4 其他常用查询函数
      • 6.5 行转列
      • 6.6 列转行

5、DML 数据操作

5.1 数据导入

5.1.1 向表中装载数据load

load data [local] inpath ‘/opt/module/datas/student.txt’ [overwrite] | into table student [partition (partcoll = val1,…)]

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

实操:
1,创建一张表

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

2,加载本地文件到hive

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

3,加载HDFS文件到hive

本地文件上传到HDFS

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

HDFS文件再到hive

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

5.1.2 通过查询语句向表中插入数据insert

1,创建分区表

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

2,插入数据

insert into table student partition(month = '201709')values(1,'wangwu')

3,插入(根据单张表查询结果)

insert overwrite table student partition(month='201708')
 select id, name from student where month='201709';

4,多插入模式(根据多张表查询结果)

from student
insert overwrite table student partition(month='201707')
select id,name where month='201709'
insert overwrite table student partition(month='201707')
select id,name where month='201709'

5.1.3 查询语句中创建表并加载数据

create table if not exists student3 as select id,name from student;

5.1.4 创建表时通过 Location 指定加载数据路径

1.创建表,并指定在 hdfs 上的位置

create table if not exists student5(id int, name string)
 row format delimited fields terminated by '\t'
 location '/user/hive/warehouse/student5';

2,上传数据到 hdfs 上

 dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student5;

3,查询数据

select * from student5;

5.2 数据导出

5.2.1 insert导出

1.将查询的结果导出到本地

insert overwrite local directory  '/opt/module/datas/export/student'
 select * from student;

2.将查询的结果格式化导出到本地

insert overwrite local directory 'opt/module/datas/export/student1'
row format delimited fields terminated by '\t'
select * from student;

3,将查询的结果导出到 HDFS 上(没有 local)

insert overwrite directory  '/user/atguigu/student2'
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
 select * from student;

5.2.2 Hadoop 命令导出到本地

dfs -get /user/hive/warehouse/student/month=201709/000000_0
/opt/module/datas/export/student3.txt;

Hive Shell 命令导出
在这里插入图片描述
Export 导出到 HDFS 上
在这里插入图片描述

5.3 清除表中数据(Truncate)

注意:Truncate 只能删除管理表,不能删除外部表中数据

hive (default)> truncate table student;

6、查询

6.1 注意点

1,SQL 语言大小写不敏感
在这里插入图片描述
在这里插入图片描述
2,平均值:avg(sal)
3,like:
% 代表零个或多个字符(任意个字符)。
_ 代表一个字符。

6.2 笛卡尔积

6.2.1 笛卡尔积会在下面条件中产生

1,省略连接条件
2,连接条件无效
3,所有表中的所有行相互连接

6.3 分桶

6.3.1 分桶表数据存储

分区针对的是数据的存储路径,分桶针对的是数据文件
分区提供一个隔离数据和优化查询的便捷方法。不过,并非所有的数据集都可以形成合理的分区
分桶是将数据集分解成更容易管理的若干部分的另一个技术。

(1).先创建分桶表,通过直接导入数据文件的方式
1,数据准备student.txt
2,创建分桶表
create table stu_buck(id int ,name string)
clustered by(id) into 4 buckets
row format delimited fields terminated by ‘\t’
3,查看表结构
desc formatted stu_buck;
Num Buckets: 4

4,导入数据到分桶表中
load data local inpath ‘/opt/module/datas/student.txt’ into table
stu_buck;
(2).创建分桶表时,数据通过子查询的方式导入
在这里插入图片描述
(6)需要设置一个属性
在这里插入图片描述

6.4 其他常用查询函数

  1. NVL( string1, replace_with)
    NVL:给值为 NULL 的数据赋值,它的格式是 NVL( string1, replace_with)。它的功能是如果string1 为 NULL,则 NVL 函数返回 replace_with 的值,否则返回 string1 的值,如果两个参数都为 NULL ,则返回 NULL。
###如果员工的 comm 为 NULL,则用-1 代替
 select nvl(comm,-1) from emp;
  1. date_format:格式化时间
select date_format('2019-06-29','yyyy-MM-dd');
  1. date_add:时间跟天数相加
 select date_add('2019-06-29',5);
  1. data_sub :时间跟天数相减
select date_sub('2019-06-29',5);

5)datadiff :两个时间相减

 select datediff('2019-06-29','2019-06-24');  
 #输出距离多少天

6.5 行转列

在这里插入图片描述

select
 t1.base,
 concat_ws('|', collect_set(t1.name)) name
from
 (select name, concat(constellation, ",", blood_type) base
 from
 person_info) t1
group by
 t1.base;

6.6 列转行

1.函数说明
EXPLODE(col):将 hive 一列中复杂的 array 或者 map 结构拆分成多行。
LATERAL VIEW
用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias
解释:用于和 split, explode 等 UDTF 一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合

在这里插入图片描述

select movie, category_name
from
 movie_info lateral view explode(category) table_tmp as 
category_name;

三种排序:
rank() :1224
dense_rank():1223
row_number():1234

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

剑指offer41.数据流中的中位数

我一开始的想法是既然要找中位数,那肯定要排序,而且这个数据结构肯定要能动态的添加数据的,肯定不能用数组,于是我想到了用优先队列,它自己会排序都不用我写,所以addNum方法直接调用就可以,但是…

多环境配置及配置文件位置

用端口测试了一下,properties>yml>yaml

未运行任何程序,GPU占用却很高

问题:没有运行任何程序,GPU的memory-usage占了很高,导致现在运行模型会cuda out of memory 解决:目前还未解决,希望大佬们可以给一些建议。

成为Pandas专业人士应该掌握的 30 种方法

一、说明 Pandas无疑是Python有史以来最好的库之一,用于表格数据整理和处理任务。但是,如果您是新手并试图牢牢掌握 Pandas 库,那么如果您从 Pandas 的官方文档开始,一开始事情可能会显得非常令人生畏和不知所措。 二、pandas主题…

leetcode每日一练-第98题- 验证二叉搜索树

一、思路 因为要验证多个节点是否是二叉搜索树,因此使用递归 二、解题方法 设计一个递归函数 helper(root, lower, upper) 来递归判断,函数表示考虑以 root 为根的子树,判断子树中所有节点的值是否都在 (l,r)的范围内(注意是开区间&#x…

arm 函数栈回溯

大概意思就是arm每个函数开始都会将PC、LR、SP以及FP四个寄存器入栈。 下面我们看一下这四个寄存器里面保存的是什么内存 arm-linux-gnueabi-gcc unwind.c -mapcs -w -g -o unwind&#xff08;需要加上-mapcs才会严格按照上面说的入栈&#xff09; #include <stdio.h> …

Scaling Instruction-Finetuned Language Models

Paper name Scaling Instruction-Finetuned Language Models Paper Reading Note Paper URL: https://arxiv.org/pdf/2210.11416.pdf TL;DR 2022 年谷歌出的文章&#xff0c;对指令微调的影响因素进行分析&#xff0c;提出了一些提升指令微调效果的方案。与该文章一起出品…

AI学习笔记四:yolov5训练自己的数据集

若该文为原创文章&#xff0c;转载请注明原文出处。 一般情况下&#xff0c;大部分人的电脑都是没有cpu的&#xff0c;cpu也是可以训练的&#xff0c;但花费的时间太长&#xff0c;实际200张图片&#xff0c;使用CPU训练300轮花了3天&#xff0c;本章记录使用云服务器来训练自…

【无废话解决bug】python dash库 127.0.0.1 拒绝了我们的连接请求

无废话。 Q: python dash库在127.0.0.1无法打开–访问本地IP时显示拒绝访问 在python3写好了代码&#xff0c;打算运行代码后在浏览器127.0.0.1查看&#xff0c;浏览器提示&#xff1a;127.0.0.1 拒绝了我们的连接请求。 A:【本解决方法对dash库问题适用&#xff0c;其他涉及…

【前端知识】React 基础巩固(三十四)——组件中的异步操作及优化

React 基础巩固(三十四)——组件中的异步操作及优化 一、待优化的异步请求流程 通过组件的生命周期来完成网络请求&#xff0c;网络请求的异步代码直接放在组件中 import React, { PureComponent } from "react"; import { connect } from "react-redux"…

OLED透明屏的安装价格与安装步骤

OLED透明屏的安装价格因各种因素而异&#xff0c;例如屏幕尺寸、分辨率、透明度等。一般来说&#xff0c;安装OLED透明屏需要考虑到以下几个步骤&#xff1a; 准备表面&#xff1a;首先&#xff0c;需要清理屏幕表面以确保透明度。然后&#xff0c;需要钻孔以安装屏幕。 安装框…

Java在线OJ项目(一)、多进程编程实现 做题代码的编译和运行

在线OJ项目&#xff08;一&#xff09;、多进程编程实现 做题代码的编译和运行 一、回顾线程和进程二、进程比线程的优势三、多进程编程样例四、多进程思想 实现对代码 的编译 以及 运行两个功能CommandUtil 由于我们是在线oj&#xff0c;所以得编译用户的代码不仅编译 还需要 …

TEE GP(Global Platform)安全认证方案

TEE之GP(Global Platform)认证汇总 一、安全认证介绍 GlobalPlatform的安全认证计划通过独立的安全评估&#xff0c;确认安全组件是否符合通用标准认可的Protection Profile。它确保安全组件满足为特定服务定义的所需安全级别&#xff0c;使服务提供商能够自信有效地管理风险并…

技术干货|详解威胁情报在WAF类产品中如何发挥最大价值?

在产业互联网发展的过程中&#xff0c;企业也将面临越来越多的安全风险和挑战&#xff0c;威胁情报在企业安全建设中的参考权重大幅上升。早期安全产品对威胁的鉴定是“一维”的&#xff1a;鉴定文件是黑&#xff08;恶意文件&#xff09;、白&#xff08;正常文件&#xff09;…

数据结构初阶--带头双向循环链表

目录 一.带头双向循环链表的定义 二.带头双向循环链表的功能实现 2.1.带头双向循环链表的定义 2.2.带头双向循环链表的结点创建 2.3.带头双向循环链表的初始化 2.4.带头双向循环链表的打印 2.5.带头双向循环链表的判空 2.6.带头双向循环链表的尾插 2.7.带头双向循环链…

要做接口并发性能测试,总得先学会分析吧!

引言 这篇是我3月份在公司内部做的技术分享内容&#xff0c;由于我在公司内部分享的内容较多以及一些特殊性&#xff0c;我摘取了接口并发测试从设计思路整理→测试方案设计→设计分析→代码编写这套流程&#xff08;我不会承认我把40多页PPT的内容都放在这篇博文里&#xff0…

高压放大器在无线电能传输中的作用和用途

高压放大器是一种电子放大器&#xff0c;主要用于放大输入信号的幅度&#xff0c;通过输出端输出一个较大的电压信号&#xff0c;以达到强化原始信号的功能。在无线电能传输中&#xff0c;高压放大器扮演着非常重要的角色。本文将从无线电能传输的定义、高压放大器的特性以及高…

mysql数据备份与还原进阶操作

创建以下表 创建普通用户backup并给权限 备份数据库school到/backup目录 mysqldump -u backup -p school > /backup/school.sql备份MySQL数据库为带删除表的格式&#xff0c;能够让该备份覆盖已有数据库而不需要手动删除原有数据库 mysqldump -u backup -p --add-drop-d…

mysql mha高可用

目录 1.MHA是什么以及作用 2.工作原理 3.案例 1.MHA是什么以及作用 MHA(Master High Availability) MySQL高可用环境下故障切换和主从复制的软件 MHA 的出现就是解决MySQL单点故障 MySQL故障切换过程中 MHA能做到0-30秒内自动完成故障切换操作 MHA能在故障切换的过程中最大程…

行业追踪,2023-07-26,如果主力不骗人,化工原料和磷化工有第一波机会

自动复盘 2023-07-26 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…