hive支持的数据类型

目录

一、hive数据类型

1.基础型

2.复杂型

二、类型转换

1.隐式转换

2.显示转换


一、hive数据类型

1.基础型

数据类型长度大小示例
TINYINT1字节有符号整数,范围:-128~12710Y
SMALLINT2字节有符号整数,范围:-32768~3276710S
INT4字节有符号整数10
BIGINT8字节有符号整数10L
FLOAT4字节单精度浮点数1.0
DOUBLE8字节双精度浮点数1.0
DECIMAL任意精度带符号小数,范围:-99.99到99.99DECIMAL(20, 2)
BOOLEANtrue/falseTRUE
STRING字符串,长度不定“a”, ‘b’
VARCHAR字符串,长度不定,有上限“a”, ‘b’
CHAR字符串,固定长度“a”, ‘b’
BINARY存储变长的二进制数据
TIMESTAMP时间戳,纳秒精度1650778130
DATE日期'2023-02-27'

2.复杂型

数据类型描述示例
ARRAY存储同类型数据ARRAY< data_type>
MAPkey-value,key必须为原始类型,value可以是任意类型MAP< primitive_type, data_type>
STRUCT类型可以不同STRUCT< col_name : data_type [COMMENT col_comment], …>
UNION在有限取值范围内的一个值UNIONTYPE< data_type, data_type, …>

Hive 除了支持 STRUCTARRAYMAP 这些原生集合类型,还支持集合的组合,不支持集合里再组合多个集合。

举例:MAP 嵌套 ARRAY,手动设置集合格式的数据非常麻烦,建议采用INSERT INTO SELECT形式构造数据再插入UNION 表

二、类型转换

1.隐式转换

Hive的类型层次中,可以根据需要进行隐式的类型转换,例如 TINYINT 与 INT相加,则会将TINYINT 转化成INT 然后相加。

隐式转换的规则:

任意数值类型都可以转换成更宽的数据类型(不会导致精度丢失)或者文本类型;
所有的文本类型都可以隐式地转换成另一种文本类型。也可以被转换成 DOUBLE 或者 DECIMAL,转换失败时抛出异常;
BOOLEAN 不能做任何的类型转换;
时间戳和日期可以隐式地转换成文本类型。
 

2.显示转换

用 CAST 函数进行显式的类型转换

示例:

select cast(12345.89 as string);

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值