Hive 总结之数据类型归纳

Hive的数据类型 【代码】Hive的数据类型。 阅读详情

Hive 总结之数据类型归纳

1. 背景

  1. Hive的本质是一个转换工具,将类sql语句(HQL)转换为mapreduce程序或者类mapreduce程序(hadoop的mapreduce或者spark)。
  2. Hive可以处理结构化数据并转换为一张表来提供对外的数据查询和分析。但本身不能存储数据。
  3. Hive的表的元数据(schema等信息)存储在数据库中,一般配置为使用mysql存储,不设置就是默认的derby数据库存储。数据信息则存储在hdfs中。
  4. 既然涉及到类SQL(HQL),则必定语法上主体和SQL规范很接近,同样会有数据类型。
  5. 本文就是关于数据类型的文章

2. 基本数据类型

会将Hive数据类型和Java数据类型进行对比,数据长度 和示例。

  1. TINYINT:1byte有符号整数如20,可以类比java的byte类型
  2. SMALINT:2byte有符号整数如20,可以类比java的short类型
  3. INT:4byte有符号整数如20,可以类比java的int的类型。
    注意,不管在哪种编程语言(sql也是一种编程语言),int和double都是主要的数据类型,当然特殊场景下会有变化。
  4. BIGINT:8byte有符号整数如10000,可以类比java的long类型
  5. BOOLEAN:布尔类型,true或者false如TRUE、 FALSE,可以类比Java的boolean类型。
  6. FLOAT:单精度浮点数如3.14159,可以类比java的 float类型。
    注意,在阿里巴巴的java开发规范中,一般禁止使用float和double,因为读写时都会有精度损失,一般使用decimal代替,不过这是HQL,如果可以的话,使用string存储浮点数也是一种解决办法。
  7. DOUBLE:双精度浮点数如3.14159,可以类比java 的double类型。注意点同上
  8. STRING:字符系列。可以指定字符集。可以使用单引号或者双引号。如‘now is the time’ 、“for all good men”,可以类比java的string类型。也可以类比sql的varchar可变字符串类型。
  9. TIMESTAMP:时间类型
  10. BINARY:字节数组

在HQL中,一般常用的是时间、int、string类型,其他基本类型了解即可。因为HQL主要用于处理海量数据情形,很多时候都是处理结构化文本数据,这时候字符串类型较多。

3. 集合数据类型

3.1 集合类型概述

  1. STRUCT(结构体)对象,和c语言以及swift语言中的struct类似,都可以通过“点”符号访问元素内容。
  • 例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。
  • 示例如 struct()
  1. MAP 映射,MAP是一组键-值对元组集合,使用数组表示法可以访问数据。
  • 例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素
  • 示例如map()
  1. ARRAY 数组,数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。
  • 例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用。
  • 示例如Array()

注意:

  1. SQL以及HQL都可以算是一种编程语言,所有都有数据类型、有运算,有方法,输入的SQL需要解析和编译才能运行。
  2. 数组、字典、struct结构体都算是复杂的数据类型,但也是使用最多的数据集合。struct可以类比java中的对象。运训多层嵌套来表达复杂数据结构。

3.2 案例演示

  1. 原始json文件
{
    "name": "niumowang",
    "friends": ["wukong" , "shiziwang"] , //列表Array
    "children": {//键值Map
        "honghaier": 12 ,
        "honghaier2": 14
    }
    "address": {    //结构Struct
        "street": "shandong" ,
        "city": "gaoshan" 
    }
}
  1. 将json文件转化为分隔符替代大括号等符号的文本文件
niumowang,wukong_shiziwang,honghaier:18_honghaier2:19,shandong_gaoshan
erlangshen,meishan1_meishan2,xiaoerlang1:18_xiaoerlang3:19,shandong_meishan
  1. 将这个文本文件上传到linux节点上,并建立hive数据表,再将这个文本文件中数据加载到这个表中。
create table tb_xiyouji(
name string,
friends array<string>,
children map<string, int>,
address struct<hole:string, mountain:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';
  1. row format delimited fields terminated by ‘,’ – 列分隔符
  2. collection items terminated by ‘_’ --MAP STRUCT 和 ARRAY 的分隔符(数据分割符号)
  3. map keys terminated by ‘:’ – MAP中的key与value的分隔符
  4. lines terminated by ‘\n’; – 行分隔符
  • 建表语句执行
    在这里插入图片描述
  • 建表之后查看数据库中表数量和名字
show tables;

在这里插入图片描述

  • 建表之后查看表信息
desc formatted  tb_xiyouji;

在这里插入图片描述

  1. 导入数据到表中
load data local inpath '/root/doit/dataType/dataType.txt' into table tb_xiyouji;

在这里插入图片描述
查看所有表中数据
在这里插入图片描述

4. 类型转化

4.1 类型概述

  1. 和编程语言java一样,HQL的,也就是hive的基本数据类型也是可以进行隐式转换的。
  • 例如一个表达式中的数据类型同时具有int和tinyint,则tinyint会被转换为int进行运算,这一点和java的规则是一样的。
  • 同样的,隐式转换只存在于小数据类型转换为大数据类型,因为这样不会产生精度丢失。
  • 而不会有大数据类型隐式转换为小数据类型,除非使用强制转换。这一点也是和java一样。HQL中的隐式转换使用cast函数
  1. 隐式转换的规则和java一样,小数据类型可以转换为任何更大的数字数据类型(注意只限制于整数类型内部如tinyint、smallint、int、bigint以及float、double之间。当然如果是整数和浮点数也是可以的)
  2. 注意boolean类型不是数字类型,所以不可以参与转换为数字类型如int、float等

4.2 cast用法

HQL中方法分为系统定义函数、自带函数、自定义函数。
cast属于系统定义函数,

select cast('1' as int);

5. hive函数查看和文档查看

  1. 如果需要查阅hive自带函数,也就是hive提供的函数,可以采用如下方式查阅文档
  • 如何使用hive自带文档进行函数查阅
show functions;

在这里插入图片描述

  • 查看函数文档
    在这里插入图片描述
desc function explode;
  1. 查阅官方文档
    官方文档
    在这里插入图片描述
关于hive的练习归纳 理解什么是映射 1、首先呢,在指定的目录下创建一个hive文件夹作为我们存储数据文件的一个地方。 mkdir hivedata 2、编辑一个文本文件内容: vim 1.txt 1,张三,21 2,李四,20 3,蔡英文,54 3、将文件上传到hdfs上 现在hdfs上也创建一个hivedata来存放数据文件(–在hdfs的根目录下创建hivedata文件夹) hdfs dfs -mkdir /... 阅读详情

相关推荐

Hadoop和Hive

Hadoop 框架是用于计算机集群大数据处理的框架,所以它必须是一个可以部署在多台计算机上的软件。部署了 Hadoop 软件的主机之间通过套接字 (网络) 进行通讯。Hadoop 主要包含 HDFS 和 MapReduce 两大组件,HDFS 负责分布储存数据,MapReduce 负责对数据进行映射、规约处理,并汇总处理结果。Hadoop 框架最根本的原理就是利用大量的计算机同时运算来加快大量数据的处理速度。

gailun66的博客 2171

Hive数据类型及常用操作总结(一)

sort by 不受 hive.mapred.mode 的值是否为 strict 和 nostrict 的影响。sort by 的数据只能保证在同一个 Reduce 中的数据可以按指定字段排序;DISTRIBUTE BY 排序查询 按照指定的字段对数据划分到不同的输出 Reduce 文件中;CLUSTER BY 查询 cluster by 除了具有 distribute by 的功能外还兼

JimGray的博客 1万+

Hive 常用指令

Hive 常用指令Hive 常用指令文档hive命令数据类型**数据类型的显示转换**集合数据类型DDLOverviewCreate DatabaseDrop DatabaseAlter DatabaseUse DatabaseCreate Tableexp1exp2exp3HQL--操作数据加载数据导出数据HQL--DQLSelect Syntaxsort by 、order by分区排序(distribute by)/**Cluster By**join函数**日期函数【重要】****字符串函数****

qq_42192672的博客 1243

hive详解之hive数据存储

hive详解之hive数据存储 hive数据存储格式 HIve的文件存储格式有四种:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET,前面两种是行式存储,后面两种是列式存储;所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了A方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。 如果为textfil...

qq_38619148的博客 4050

Ethercat学习-从站源码生成

移植平台GD32F450,从站芯片AX58100

西澳峰的博客 9220

CUDA编译踩坑实录:如何正确设置-gencode参数适配你的GPU算力

本文深入解析CUDA编译中-gencode参数的核心原理与实战配置,帮助开发者解决常见的'Unsupported gpu architecture'错误。通过厘清虚拟架构与真实架构的区别,并提供多版本兼容的CMake配置方案,确保编译出的代码能精准适配不同GPU算力,兼顾性能与广泛兼容性。

weixin_28829903的博客 338

hadoop组件---数据仓库(二)---hive的数据模型和数据类型

我们在上一章中已经大概了解了Hive有四种数据模型,本章就来详细了解它们的使用。 Hadoop组件—数据仓库(一)—Hive简介 数据模型 Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下...

直到世界的尽头 3406

1020空心杯电机驱动设计与ESP32实战

空心杯电机是一种高动态响应的直流微特电机,其驱动本质是解决电感负载下的大di/dt启动、反电动势耦合与电流纹波抑制问题。核心原理在于建立包含内阻、电感和反电动势的等效电路模型,并据此匹配开关器件、PWM参数与采样闭环。技术价值体现在小体积下实现毫秒级响应、低噪声(>30kHz)、高精度电流保护(±50mA)及热鲁棒性。典型应用于微型航模、手持云台与精密执行器等对功率密度和动态性能敏感的嵌入式系统。本文以1020规格空心杯电机为对象,基于ESP32平台完成从MOSFET选型、32kHz硬件PWM生成到INA2

weixin_42298164的博客 582

大数据---28. hive的数据类型和特殊数据处理

hive支持两种数据类型原始数据类型

u014579001的博客 5364

将外部电磁近场数据导入 ANSYS HFSS

本博客介绍了如何将电磁近场数据导入 ANSYS HFSS。用户可能需要导入字段,无论是通过分析计算、测量、由其他工具生成还是从提供商处接收的字段,并将其用作实际激励来执行不同类型的分析。以下是导入过程的简要概述,视频链接中提供了完整的演示。为了定义简单基元近场源,HFSS 使用两种外部数据文件。首先,实际位置/字段数据以 .nfd 格式存储。其次,Ansys Near field Descriptor 文件(.and 文件)存储 .nfd 数据的一般几何信息和路径。

jkh920184196的博客 2324

5种隐藏代码到图片的实用技巧:从Notepad++到Linux命令全解析

本文详细解析了5种将代码或文本隐藏到图片中的实用数据隐写技巧。从Notepad++尾部追加、Windows命令行合并,到编辑图像元数据、使用十六进制编辑器,再到Linux的cat/dd命令,全面覆盖了从图形界面到命令行的工程化实践方法,帮助开发者和安全研究人员掌握隐蔽信息传输与存储的核心技术。

hh234的博客 353

Hive数据类型

1. Hive数据类型Hive支持原始数据类型和复杂类型,原始类型包括数值型,Boolean,字符串,时间戳。复杂类型包括数组,map,struct。下面是Hive数据类型的一个总结: 分类 类型 描述 字面量示例 原始类型 BOOLEAN true/false TRUE TINYINT 1字节的有符号整数 -128~127 1Y SMALL

Spring , Hadoop, Spark , BI , ML 5万+

手把手教你学Simulink——逆变器场景:基于PR控制器的单相逆变器并网控制策略仿真

摘要:本文详细介绍基于PR控制器的单相逆变器并网控制策略的Simulink仿真实现。首先分析PR控制器在单相逆变应用中的优势,然后逐步讲解模型搭建过程,包括主电路设计(直流电源、全桥逆变器、L滤波器)、控制回路实现(参考电流生成、坐标变换、PR控制器设计)以及关键参数设置。通过仿真验证了PR控制器对电网频率的精确跟踪能力,并网电流THD<3%。最后提出优化建议,如加入状态观测器、自适应参数整定等改进方向。该建模方法为可再生能源系统中的逆变器控制提供了有效验证手段。

MHD0815的博客 497

Hive详解——基本操作归纳

文章目录一、Hive基本概念1. 什么是 Hive1)hive 简介2)Hive 本质:将 HQL 转化成 MapReduce 程序2. Hive 的优缺点1)优点2)缺点3. Hive 架构原理4. Hive 和数据库比较1)查询语言2)数据更新3)执行延迟4)数据规模二、Hive安装1. Hive 安装地址2. 安装MySQL3. Hive 安装部署4. Hive 元数据配置到 MySQL5. 启动并使用 Hive1)启动 Hive2)使用 Hive3)Hadoop中查看文件6. 使用元数据服务的方式访

一名小码农的博客 3570

PPT制作能力在职场中真的重要吗?一定要美术功底才能学好PPT吗?

我推出PPT技能培训专栏啦!好的PPT可以让你事半功倍、2023拥有PPT能力还可以让你具备一门极有价值的斜杠能力。更多内容请进:梦幻训练营专栏。专栏内会用本人积累的近10年的PPT学习方法论在短时间内教会你如何制作出精美绝伦的PPT,每篇教程后还会免费赠送一些小福利,不可多得。

打造全国最全的AI Agent开发知识领域的博客 728

动态规划之【树形DP】第3课:树形DP应用案例实践2

动态规划之【树形DP】第3课:树形DP应用案例实践2

王老师青少年编程 763

hive归纳总结

hive基本归纳总结

qq_25073261的博客 1144

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Hive笔记归纳

Hive是基于hadoop的数据仓库工具,可以将类SQL语句转换成MR任务运行,它提供了一系列工具用来提取,转化,加载,这是一种可以存储,查询。分析存储在hadoop上大规模数据的机制。 一种离线的大数据分析工具 数据仓库的特征: 1.数据仓库一般存储的历史数据 2.数据库是为捕获数据设计的,数据仓库是为分析数据设计的 3.数据仓库大多数情况下是读数据 ...

qq_40076192的博客 394

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大数据开发入门之Hive知识点归纳

在从事大数据开发领域工作的同时,愈发觉得大数据组件实在太多了!!!有时候分不清哪些是重点,为了总结经验和知识点,更深入的了解各大数据架构原理等内容,也为了便于后续继续在该领域的择业过程,特别总结一份最强大数据知识点笔记,用于分别进行各组件内容的学习和记录。本章主要针对的是Hive相关的内容,后续会不断扩充和总结。加油,大家一起共勉!大家如果有关键核心的Hive相关的知识点,日常生产中发现的问题,都可以一起沟通下~

qq_43249097的博客 1046

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hive截取两个字符间的内容_数据仓库工具–Hive(归纳第一部分)

写在开头从本篇文章开始会连续更新关于数仓工具Hive的学习归纳

weixin_39885067的博客 1145

MapReduce、Hive、Spark中数据倾斜问题解决归纳总结

数据倾斜是什么 总的来说,你集群运行时发现MR或者Hive卡在99%不动时,或者Spark运行时出现OOM异常(OutOfMemoryError),或者成功执行但就是耗时过久时,既要考虑是否出现了数据倾斜。数据倾斜就是某些key对应的数据分化不均,导致部分reduce处理数据量过大,以至于其他reduce都执行完了它还在运行。 查看web UI、日志文件: 看是否出现map和reduce任务执行...

lzw2016的博客 1639

Hive常用函数归纳总结

Hive 常用函数 一, 关系运算符 等值比较: = 语法: A=B 操作类型: 所有基本类型 描述: 如果表达式A与表达式B相等,则为TRUE; 否则为FALSE hive> select 1 from tabname where 1=1 不等值比较: <> 语法: A<>B 操作类型: 所有基本类型 描述: 如果表达式A为NULL,或者表达式B为NULL, 返回NULL;如果表达式A与B不相等, 则为TRUE; 否则为FALSE hive> select 1 fro

时光带不走,年少轻狂 259

云计算中的Hive操作详解

Hive作为一个强大的数据仓库工具,在云计算中扮演着至关重要的角色。它通过提供类SQL的查询接口,使得处理大规模数据集变得简单快捷。本文介绍了Hive的基本操作和一些使用示例,希望能够帮助读者更好地理解和使用Hive。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章Hive详解——基本操作归纳Hive 教程 - 菜鸟教程。

ning的博客 1638

hive string转decimal_数据仓库工具–Hive(归纳笔记第五部分: 函数一)

写在开头:本章是Hive教程第五部分归纳,着重于归纳Hive函数文章内容输出来源:拉勾教育大数据高薪训练营函数在做HQL开发时经常被用到,也需要不断练习才能掌握,这里将介绍hive的内置函数,时间日期函数,字符串函数,数学函数,函数二部分将介绍条件函数,UDTF函数,窗口函数,排名函数,序列函数等,最后加上sql的一些简单案例来帮助大家熟练使用这些函数。Hive函数很重要,所以下文会将所有常用的函...

weixin_30222083的博客 3971

hive一次加载多个文件_数据仓库工具–Hive(归纳第二部分: DDL命令)

写在开头本章是Hive教程第二部分归纳,着重于DDL命令

weixin_39907762的博客 99
上一篇: Hive错误之 Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask错误分析
下一篇: Hive 数据操作之JDBC总结
闻香识代码
博客等级 码龄12年 314粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值