十八章 hive基础

1)

表的分区

大数据开发数据量较大,在进行数据查询计算时,需要对数据进行拆分,提升查询速度。

1-1 单个分区

单个分区时创建单个目录

1-2 多个分区

多个分区可以将数据拆分多个目录储存

注意点: 1 分组字段不能和表中字段重名
   
              2 动态分区数据写入时,select中字段顺序要和分区表中字段顺序一致

              3 分区字段在最后,所有select中的分区数据指定也放在最后


2)

1-1
表的分桶

分区:将数据拆分不同目录下存储

分桶:将数据拆分成不同文件进行存储

无论是分区还是分桶,本质都是对数据的拆分存储,作用是为了提升查询的效率

分桶表可以在进行数据写入时,根据写入数据的不同拆分到不同文件进行存储,在查询数据时,就可以读取不同文件获取数据

分桶的数据字段可以自己指定,分桶的数量,也就是拆分文件的数量也可以自己指定


2-1

分桶创建

格式:

create table 表名 ()clustered by (选择分桶的字段) into (选择分成几个通)buckets 

row format delimited fields terminated by ‘分隔符’;

使用分桶时,一般都是已经存在了一个原始数据表,为了提升原始数据速度,将原始数据在重新写入一个分桶表


2-2 

分桶原理说明

数据按照hash取余的方式进行拆分,写入到不同的文件中


逻辑 :hash(分桶字段)%分桶数  = 余数      hash方法互怼任意数据进行计算后得到一个唯一编号值

2-3

分桶的主要使用场景

多表关联  提升多表关联的查询效率

随机采样 


3)

数据文件的读取和写入

hive在对hdfs上的文件数据进行读取和写入数据时,


使用delimited 表示底层默认使用的serde类:LazySimpleSerDe类来处理数据

使用serde:表示指定其他的Serde类来处理数据,支持用户自定义SerDe类


3-1

默认序列化器

delimited 

在进行表定义时指定row format delimited

指定处理不同数据的方法

fields terminated by 字段的处理方法 指定如何分隔字段

collection items terminated by 指定字段中数组的分割分割方式

map keys terminated by 指定map的数据分割方式

3-1-1   array类数据类型

create table 表名(
  hoobby  array <string>) .... collection items terminated by ',' ;

3-1-2  struct类型数据

create table 表名(
 user  struct <name:string,age:int,gender:string>) ....collection items terminated by '#'


第一步  先按照逗号拆分数据

第二部  在将数组类型数据 拆分

第三步 在对数组中的数据转为map形式


3-1-3   map类型数据


collection items terminated by '-'

map keys map keys terminated by  '  :  '


* :  split (字段,’-‘)   字段内容转为数组

3-2

自定义序列化器

可以使用自定义序列化器中提供jar包完成对json数据的处理

可以将json文件中的数据key最为字段,将value值解析为对应的行数据

步骤:

按照json文件中的key定义表字段

顺序要一样

crearte table 表名 ()row format serde ’org.apche.hive.hcatalog.data.JsonSerDe‘   ;(指定三方的序列化器)


4 )

内置函数

 hive提供的函数方法,方便对不同类型的字段数据进行操作

4-1  字符串操作函数

计算字符串长度  length(name)

字符串拼接   concat(字段,字段)  没有拼接字符      

                     concat_ws(':', 字段,字段) 有拼接符
 
字符串切割   split(字段,’-‘)   数组取值   

                     split(字段,’-‘)[0]

字符串截取    substr(字段,1,4)  起始的字符位置书,截取的字符个数

字符串替换 regexp_replace(字段,’-‘,’/‘)

方法嵌套使用

例如:

trim 去除字符串的前后空格

select 字段 ,subst(trim(字段)1,4)from 表名

4-2

数值操作

取余操作   select 2%5 

取整操作   round ()   保留多少位置 round(。。。,2) 保留两位

向上取整  ceil(3.14)

向下取整 floor (3.14)

次方计算  pow (2,3)


4-3

条件判断

单个条件判断

select gender,if(gender =0 ,’男‘,’女‘)from 表名    ----  如果gender等于0则成立等于男,如果不是则是女

多个分类条件判断

case when

select age ,case    when age <= 18 then '少年'  when age >18 and age <=40  then ’青年‘   end as age_new  from 表名

判断数据是否为空

if(字段 = null,’‘,’‘)

nullif(1,1) , nullif(1,2) 

查看方法的使用形式  desc function extended nullif ;
 

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

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

相关文章

Win10 启动时数字键盘不亮怎么办?

首先&#xff0c;按住winr 运行 windows 运行框&#xff0c;输入regedit 打开注册表编辑器 1.查找current_user选项下的Control Panel 中的keyboard 点击八initialkeyboard 值设置成2&#xff0c;如图所示即可。2.选择hkey_user 中的。default 下的control Panel 选项下的keyb…

mysql断电后无法启动

1、配置/etc/my.cnf innodb_force_recovery6(这个值越小越安全,最开始建议设置为1&#xff0c;如果也无法启动再改为2&#xff0c;以此内推)1 (SRV_FORCE_IGNORE_CORRUPT)&#xff1a;即使服务器检测到损坏的页仍让它运行。试图使SELECT* FROM tbl_name跳过损坏的索引记录和页…

JavaScript事件循环

JavaScript是单线程&#xff0c;&#xff08;通常用来操作DOM&#xff0c;如果改为多线程&#xff0c;一个线程进行了1删除&#xff0c;另一个添加了DOM&#xff0c;那么浏览器该怎么处理&#xff09; 在JavaScript中&#xff0c;所有任务都可分为 同步任务&#xff1a;立即执…

美易官方:道指六连阴!美国股债双杀背后

美国股市和债市近期遭遇了罕见的双重打击&#xff0c;道指连续六个交易日下跌&#xff0c;引发市场广泛关注。这一现象背后&#xff0c;是否又上演了某一“魔咒”&#xff1f;本文将从多个角度对此进行深入分析。 道指罕见创下六连阴、标普500指数迎来硅谷银行危机以来最大两日…

工作中用Redis最多的10种场景

作者&#xff1a;苏三说技术 链接&#xff1a;https://juejin.cn/post/7325132133168971813 前言 Redis是一种非常优秀的基于KV的键值对缓存数据库&#xff0c;有非常不错的性能和稳定性&#xff0c;无论是在工作中&#xff0c;还是在面试中&#xff0c;都经常会出现。因此&am…

村庄规划中基础地理数据的获取、处理与应用

文章目录 一、三调数据1. 地类图斑2. 村级调查区二、调查数据1. 宅基地确权数据2. 公益林数据三、公开数据1. 卫星影像2. 数字高程模型3. 国家地理信息服务平台4. 其他数据一、三调数据 三调数据,是对现状土地利用情况的全面调查。成果数据以数据库的形式存储、组织与管理。具…

UC网盘、迅雷网盘拉新如何做?热门拉新项目盘点

迅雷网盘拉新项目&#xff1a; ​关键词链接 双重拉新模式&#xff1a;可以通过链接、关键词两种方式进行推广&#xff0c;匹配不同拉新场景。 网盘功能齐全&#xff1a;作为老牌网盘产品&#xff0c;功能强大&#xff0c;使用体验好&#xff0c;支持不同格式文件。 不限推广…

【七 (2)FineBI FCP模拟试卷-平台新增用户留存分析】

目录 文章导航一、字段解释1、用户平台登录信息表格2、用户平台激活信息表格 二、需求三、操作步骤1、建立用户平台登录信息表格和用户平台激活信息表格的关联关系2、将用户平台激活信息表格的激活日期添加到用户平台登录信息表格3、新增公式列&#xff0c;计算激活时间和登录时…

OpenHarmony轻量系统开发【5】驱动之GPIO点灯

5.1点灯例程源码 先看最简单得LED灯闪烁操作 源码结构如下&#xff1a; 第一个BUILD.gn文件内容&#xff1a; static_library("led_demo") {sources ["led_demo.c"]include_dirs ["//utils/native/lite/include","//kernel/liteos_m/c…

工业物联网让“制造”变成“智造”!——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断进步和工业的持续发展&#xff0c;物联网&#xff08;IoT&#xff09;技术的出现为制造业带来了前所未有的变革。工业物联网&#xff08;IIoT&#xff09;作为物联网技术在工业领域的应用&#xff0c;正在逐渐改变传统的制…

@Transactional使用中的三类坑

我们知道事务有声明式事务和编程式事务两种&#xff0c;编程式事务代码侵入较高&#xff0c;声明式事务侵入较低&#xff0c;在项目中常有使用&#xff0c;然而&#xff0c;不正确的使用声明式事务&#xff0c;可能让代码未能按照我们的预期执行。 一、事务可能没有生效 Tran…

概念:Android 虚拟机

Android中的Dalvik虚拟机&#xff08;DVM&#xff09;和Android运行时&#xff08;ART&#xff09;都是运行在内存中的。它们是Android操作系统的一部分&#xff0c;为Android应用提供了一个管理执行代码的环境。具体来说&#xff1a; Dalvik虚拟机 (DVM)&#xff1a;Dalvik是…

2024-4.python4基本数据类型

基本数据类型 引言 提问 前面我们说过&#xff0c;计算机的本质作用就是用来存储和运算二进制的数据。但是在实际应用中&#xff0c;我们看到计算机存储或者运算的数据并非只有二进制的数据&#xff0c;例如使用Excel可以对一些数值数据、文本数据或者图像数据进行不同形式的处…

从iPhone恢复已删除照片的最佳软件

本文分享了从iPhone恢复已删除照片的最佳软件。如果您正在寻找如何从iPhone恢复已删除的照片&#xff0c;请查看这篇文章。 为什么您需要软件从iPhone恢复已删除的照片&#xff1f; 没有什么比丢失iPhone上的重要数据更痛苦的了&#xff0c;尤其是一些具有珍贵回忆的照片。有时…

从零开始学习深度强化学习及其在自动驾驶下的实战项目

深度强化学习及其在自动驾驶下的实战项目 本课程是为了帮助大家快速入门强化学习和学会应用深度强化学习进行算法的开发。 鉴于网上有许多开源的强化学习理论基础的视频&#xff0c;而且许多项目都是基于gym游戏进行开发的简单项目&#xff0c;并未涉及使用前沿的carla环境等自…

公司文件加密软件有监视功能吗?

公司文件加密软件不仅提供了强大的文件加密能力&#xff0c;还具备了监视功能&#xff0c;确保文件在使用过程中的安全性。华企盾DSC数据防泄密系统中的监控功能体现在以下几个方面&#xff1a; 加密文件操作日志&#xff1a;记录所有加密文件的申请、审批、扫描加解密、自动备…

Jvm垃圾回收器cms和g1区别

Jvm垃圾回收器cms和g1区别 G1垃圾回收器&#xff08;Garbage First&#xff09;和CMS &#xff08;Concurrent Mark-Sweep&#xff09;垃圾回收器是Java虚拟机&#xff08;JVM&#xff09;&#xff09;中的两种不同的垃圾回收策略&#xff0c;它们各有优缺点。以下是两者的比较…

【Camera2 教程二】Camera2相机打开和关闭接口调用详细说明

上一章《Camera2教程一》里我们介绍了一些 Camera2 的基础知识,但是并没有涉及太多的 API,从本章开始我们会开发一个具有完整相机功能的应用程序,并且将相机知识分成多个篇章进行介绍,而本章所要介绍的就是相机的开启流程。 阅读本章之后,你将学会以下几个知识点: 如何…

C#值传递和引用传递,ref和out关键字,装箱和拆箱

C#值传递和引用传递 1.值传递和引用传递 值传递&#xff1a;值传递时&#xff0c;系统首先为被调用方法的形参分配内存空间&#xff0c;并将实参的值按位置一一对应复制给形参&#xff0c;被调用方法中形参得任何改变都不会影响到相应的实参。 引用传递时&#xff1a;系统不是…

【学习笔记十】EWM自动产品包装配置

一、确定包装物料建议的程序 1.定义内向交货处理的凭证类型 2.确定包装物料建议的程序确定原理 使用可以确定包装材料建议的过程来指定业务代码。系统使用这些业务代码查找包装规格。包装期间&#xff0c;系统可建议包装材料。如果系统确定包装规格并建议包装材料&#xff0c;…