HIVE数据类型INT溢出,INT转BIGINT

Hive数据类型全解析:从基础类型到复杂结构,构建高效数据仓库的基石 在数据仓库与大数据处理领域,数据类型是构建数据模型的原子单元,它定义了数据的存储格式、计算方式和语义约束。理解数据类型的原理,是进行高效数据存储、查询和计算的基础。从关系型数据库的经典类型体系,到适应半结构化、非结构化数据的复杂容器,合理的数据类型设计能显著提升存储效率、计算性能和资源利用率。在Hadoop生态中,Hive作为核心的数据仓库工具,其丰富的数据类型体系(包括基本类型如INT、STRING、DECIMAL,以及复杂类型如ARRAY、MAP、STRUCT)为处理多样化的业务数据提供了强大支持。掌握 阅读详情

HIVE版本

ll $HIVE_HOME/lib | grep hive

查到HIVE版本为3.1.2

INT范围

4-byte signed integer
-2,147,483,648~2,147,483,647
2147483648 = 2 31 2147483648=2^{31} 2147483648=231

INT溢出为负数

SELECT 2147483647+1;

结果:-2147483648

上面负数结果通常不是我们想要的,解决方法:把INT转BIGINT

SELECT CAST(2147483647 AS BIGINT)+1;

结果:2147483648

INT溢出为NULL

echo 2147483647,2 > /home/yellow/a.txt
echo 2147483648,2 >> /home/yellow/a.txt
echo -2147483648,2 >> /home/yellow/a.txt
echo -2147483649,2 >> /home/yellow/a.txt
cat /home/yellow/a.txt
-- 建表
CREATE TABLE t7(a INT,b INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
-- 数据导入
LOAD DATA LOCAL INPATH  '/home/yellow/a.txt' OVERWRITE INTO TABLE t7;
-- 查询
SELECT
  a
  ,b
  ,a+b
  -- ,a-b
  ,CAST(a AS BIGINT)+b
  ,CAST(a+b AS BIGINT)
  ,a*b
  ,CAST(a AS BIGINT)*b
  -- ,a/b
FROM t7;

头两行结果

aba+bCAST(a AS BIGINT)+bCAST(a+b AS BIGINT)a*bCAST(a AS BIGINT)*b
21474836472-21474836472147483649-2147483647-24294967294
NULL2NULLNULLNULLNULLNULL

结论
CAST(a+b AS BIGINT)冇用
CAST(a AS BIGINT)+b有用
2147483648越界,查询结果为NULL


补充

SUM不会出现越界,会自动转bigint

echo 2147483647,2 > /home/yellow/a.txt
echo 2147483647,2 >> /home/yellow/a.txt
cat /home/yellow/a.txt
-- 数据导入
LOAD DATA LOCAL INPATH  '/home/yellow/a.txt' OVERWRITE INTO TABLE t7;
-- 查询
SELECT SUM(a) FROM t7;
-- 执行计划
EXPLAIN SELECT SUM(a) FROM t7;

查询结果:4294967294

Explain
STAGE DEPENDENCIES:
  Stage-1 is a root stage
  Stage-0 depends on stages: Stage-1

STAGE PLANS:
  Stage: Stage-1
    Spark
      Edges:
        Reducer 2 <- Map 1 (GROUP, 1)
      DagName: 用户名_年月日时分秒_xxxxxxxxxx:提交次数
      Vertices:
        Map 1 
            Map Operator Tree:
                TableScan
                  alias: t7
                  Statistics: Num rows: 1 Data size: 260 Basic stats: COMPLETE Column stats: NONE
                  Select Operator
                    expressions: a (type: int)
                    outputColumnNames: a
                    Statistics: Num rows: 1 Data size: 260 Basic stats: COMPLETE Column stats: NONE
                    Group By Operator
                      aggregations: sum(a)
                      mode: hash
                      outputColumnNames: _col0
                      Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                      Reduce Output Operator
                        sort order: 
                        Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                        value expressions: _col0 (type: bigint)
            Execution mode: vectorized
        Reducer 2 
            Execution mode: vectorized
            Reduce Operator Tree:
              Group By Operator
                aggregations: sum(VALUE._col0)
                mode: mergepartial
                outputColumnNames: _col0
                Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                File Output Operator
                  compressed: false
                  Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE
                  table:
                      input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                      output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                      serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

  Stage: Stage-0
    Fetch Operator
      limit: -1
      Processor Tree:
        ListSink
Spark on Hive表结构变更 在Spark on Hive架构中,表结构(Schema)变更是一个常见且重要的操作。理解其背景、使用场景以及具体方式对于大数据平台管理至关重要1.1、Spark on Hive元数据管理核心组件。它是一个独立的关系型数据库(如MySQL、PostgreSQL),存储了Hive表、分区、列、数据类型、存储位置等元数据信息Spark本身不存储元数据。当Spark需要处理Hive表时,它通过HMS连接到Hive Metastore数据库,获取表的元数据(Schema、分区、文件位置等) 阅读详情

相关推荐

深入解析Hive分位数函数:percentile与percentile_approx的算法差异与应用场景

本文深入解析Hive分位数函数percentile与percentile_approx的算法差异与应用场景。通过对比精确计算与近似计算的原理,结合实际案例说明在数据量、精度要求和数据类型不同时的选择策略,帮助开发者高效处理海量数据分析任务。

weixin_29046035的博客 159

【hive】hive数据类型及数据类型转换的注意事项

hive数据类型及数据类型转换的注意事项

sodaloveer的博客 1万+

Hive学习之Hive数据类型

Hive到0.13.0版本为止已经支持越来越多的数据类型,像传统数据库中的VCHAR、CHAR、DATE以及所特有的复合类型MAP、STRUCT等。Hive中的数据类型可以分为数值类型、字符串类型、日期时间类型、复合类型以及其它类型,下面分别予以介绍。 数值类型 Hive中的数值类型与Java中的数值类型很相似,区别在于有些类型的名称不一样,可以概括为如下的表格: 类型名称

skyWalker_ONLY 5万+

Hive语言手册之三:数据类型

   一、概述 以下是Hive支持的所有数据类型 1、数值类型 (1)TINYINT         1字节带符号整数,取值范围-128 to 127 (2)SMALLINT     2字节带符号整数,取值范围-32,768 to 32,767 (3)INT                           4字节带符号整数,取值范围-2,14

guoxy_nb的专栏 8403

RFID射频识别技术介绍及简单应用

简单介绍RFID技术及其简单应用,后附简单门禁制作方法和代码

来者皆是客。 1万+

ANSYS Fluent中的声学模型:实用指南

文章摘要 本文介绍了ANSYS Fluent中三种气动声学模拟方法:Ffowcs-Williams & Hawkings(FWH)模型、宽带噪声源模型和波动方程模型。FWH模型适用于外部气动声学问题,需要瞬态流场数据来预测远场噪声;宽带模型基于稳态RANS模拟,可快速识别噪声源位置,适合早期设计阶段;波动方程模型直接求解声波方程,提供全域声压分布,但仅适用于低马赫数流动。文章详细说明了各模型的使用场景、设置步骤和关键参数配置,为工程应用提供了实用指南。

weixin_45793544的博客 1325

Hive 数据类型

Hive 中的基本数据类型也称为原始类型,包括整数、小数、文本、布尔、二进及时间类型。上述数据类型都是对Java中的接口的实现,所以类型的具体行为细节和Java中对应的类型完全一致。比如STRING 类型实现的是Java中的String,FLOAT类型实现的是Java中的float。

weixin_71667809的博客 1485

基于C#开发ABB机器人上位机系统:从操作控制到数据交互的全方位实现

ABB工业机器人是世界领先的自动化设备之一,广泛应用于焊接、装配、搬运、喷涂、包装等多个行业。机器人控制器:用于控制机器人运动、路径规划、状态监控等。上位机系统:提供人机交互界面,允许操作员与机器人进行交互,实现实时控制、参数调整和数据分析。上位机系统通过与机器人控制器通信,采集机器人状态数据,发送控制指令,实现远程监控和控制操作。通过高效的操作界面和数据交互,可以大大提高机器人的工作效率和系统的可维护性。基于C#开发ABB机器人上位机系统,能够实现高效的机器人控制与实时数据交互。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1180

hive数据类型 int

在Hive中使用整型数据类型(int)的完整指南 Hive是建立在Hadoop之上的数据仓库基础设施,提供数据的摘要、查询和分析功能。在Hive中,数据以表格的形式存储,支持多种数据类型,其中包括整型(int)数据类型。本文旨在为刚入行的小白提供一个详细的指导,帮助他理解并实现Hive中的整型数据类型。 整体流程 以下是使...

weixin_41115504的博客 240

YOLOv8改进策略【卷积层】| ECCV-2024 小波卷积WTConv 增大感受野,降低参数量计算量,独家创新助力涨点

本文记录的是利用模块优化的目标检测网络模型。的目的是在不出现过参数化的情况下有效地增加卷积的感受野,从而解决了在感受野扩展中的参数膨胀问题。本文将其加入到深度可分离卷积中,有效降低模型参数量和计算量,并二次创新C2f,使模块更好地捕捉低频特征,增强网络性能。Wavelet Convolutions for Large Receptive Fields小波卷积及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块改进方法:加入(第五节讲解添加步骤)。添加后如下:模块改进方法:基于的(第五节讲解添加

Limiiiing的博客 1092

【WRFDA输入数据】全球高空观测气象数据(LITTLE_R 格式数据)

【WRFDA输入数据】全球高空观测气象数据(LITTLE_R 格式数据)

WW、forever的博客 480

Hive_2. 数据类型

Github 源码:https://github.com/Hanmourang

Mike han 2242

新凯来嵌入式面经及参考答案

利用编译器预定义宏判断目标架构,如。

大模型大数据攻城狮的专栏 2065

Hive数据类型详解:基础与复杂类型实战指南

Hive作为Hadoop生态的核心数据仓库工具,其数据类型系统直接影响数据存储与处理效率。数据类型分为基础类型(如INT、STRING)和复杂类型(如ARRAY、MAP),设计上兼顾关系型数据库的严谨性与大数据的灵活性。理解类型系统原理对优化存储压缩率(如ORC格式下的字典编码)和查询性能至关重要。在工程实践中,合理选择数据类型能显著提升ETL效率,例如用DECIMAL处理金融计算避免浮点误差,用ARRAY存储标签系统提升查询性能7倍。本文深入解析Hive数据类型的最佳实践,涵盖类型转换陷阱、存储优化策略及

weixin_29061425的博客 277

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1849

STM32(HAL库)驱动HC-SR04测距模块

本文介绍通过STM32F103C8T6单片机对HC-SR04测距模块进行驱动,并且通过串口对数据进行打印。

weixin_44597885的博客 2204

Hive数据类型深度解析:从基础概念到数仓建模实战

数据类型是数据库与数据仓库系统的核心基础概念,它定义了数据的存储格式、取值范围和计算规则。从原理层面看,数据类型的选择直接影响数据的存储效率、计算精度和查询性能,是数据建模的基石。在数据仓库技术中,合理的数据类型设计能够优化存储成本、提升计算速度并保障数据质量,其技术价值体现在大规模数据处理时的资源利用率和系统稳定性上。特别是在Hive这样的分布式数据仓库中,数据类型的选择与使用策略直接关系到ETL流程的效率和数据分析的准确性。应用场景广泛覆盖金融交易、用户行为分析、日志处理等领域,其中数值精度、日期时间处

weixin_30698527的博客 393

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

sql数据类型映射与数据类型转换

MaxCompute 2.0新增了DECIMAL类型与DATETIME的常量定义方式,100BD是数值为100的DECIMAL,2017-11-11 00:00:00是DATETIME类型的常量。关于CAST的介绍请参见CAST。关系运算符包括=、<>、<、<=、>、>=、IS NULL、IS NOT NULL、LIKE、RLIKE、IN。只有符合上述格式描述的STRING类型才能够转换为DATETIME类型,例如CAST(“2013-12-31 02:34:34” AS DATETIME),将会。

m0_46914845的博客 2683

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

hive学习笔记3

(是指写入字段的数据,不符合该字段定义的数据类型规则、取值范围、格式约束,Hive 识别不出的数据,例如:字段定义 TINYINT(范围 - 128~127),写入 200:数值越界,即非法数据)写入。③字符串:CHAR(定长)、VARCHAR(可变长)、STRING(无限长),短固定文本用 CHAR,短可变文本用 VARCHAR,长文本用 STRING;可通过函数substr(timestamp,‘第几位开始’,‘取几位数’)提取年、月、日、时、分、秒、毫秒。适合存储大段文本(如日志、文章内容);

2301_81194982的博客 253

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Hive 不同类型的数值型数据和对应的范围

Hive 不同类型的数值型数据和对应的范围

houzhizhen的专栏 580

Hive最全介绍:架构、数据模型和语法

Hive概述与核心要点 Hive是基于Hadoop的数据仓库工具,提供类似SQL的HiveQL查询语言,将SQL转换为MapReduce/Tez/Spark任务执行。其架构包括HiveServer2、Metastore(建议生产环境使用MySQL)和多种执行引擎。主要表类型包括:内部表(Hive管理数据生命周期)、外部表(用户管理数据)以及优化查询的分区表和分桶表。 Hive支持多种文件格式,性能排序为ORC > Parquet > SequenceFile > TextFile。核心语法

Cachel Wood的博客 1737

Impala 和 Hive 之间的SQL 差异

基于impala 3.2版本: 概述: impala 遵循SQL-92标准,但是在内置函数上有了不少自己的扩展。 由于impala和hive共享相同的metastore数据库,并且它们的表经常互换使用。 impala 不支持的Hive的功能: 1.函数: ovar_pop, covar_samp, corr, percentile, percentile_approx, histogram_numeric, collect_set XML 函数 2.数据类型: DATE 类型和binary类

vkingnew 的技术博客 2743

Hive数据类型详解:从基础到实战,避坑指南与性能优化

数据类型是数据库和数据仓库系统的核心基础,它定义了数据的存储格式、取值范围和可执行的操作。在Hadoop生态中,Hive通过将结构化的数据文件映射为表,并提供了类SQL的查询能力,其数据类型体系直接决定了数据存储效率与计算正确性。理解数据类型转换机制,特别是隐式转换与显式转换的原理,对于保障数据质量和查询性能至关重要。在数据工程实践中,不恰当的类型使用会导致精度丢失、性能下降等隐患。例如,在金融计算场景中,必须使用DECIMAL类型替代FLOAT/DOUBLE来避免浮点数精度误差;在时间处理中,日期时间字符

weixin_34133829的博客 365

hive使用笔记

一、 相关参考一、 相关参考二、 内置函数1. 字符串操作字符串函数rlike,like,not like使用详解正则表达式2. 进制转换string三、 多表指向同一份数据1) 创建外表,指向同一个数据源,修复分区(或添加分区);2) 创建视图;使用正则方法查找库名或表名五、 hive参数设置对于分区较多或文件较多的表,清空数据或删除表时速度很慢, 可以先删元除数据再删除数据,即内表转外表删除元数据后再删除底层数据;

盛源的博客 1988

Apache Hive Select

**SELECT … FROM ** SELECT是SQL的射影算子,FROM标识了从哪个表查询 CREATE TABLE employees( salary FLOAT, subordinates ARRY<STRING>, deductions MAP<STRING,FLOAT> ) PARTITIONED BY (county string,s...

Poor - Because you have no ambition 237

谈笑间学会大数据-Hive查询SQL

Hive查询SQL 这篇博客呢,不想说太多基础,有些东西像MySQL类似的语法,简单的select...from...这种大家都会的,我就不bb了~ 原则上:大多数情况是,MySQL支持的SQL语法,在Hive中也同样适用... 使用正则表达式来指定列 SELECT symbol, `price.*` FROM stocks ; SQL执行以后的大致效果 ...

阿尼古 597
上一篇: 批量查询HIVE所有表的大小和行数
下一篇: Python工程师Java之路(r)把字符串转成JSON
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值