Hive到0.13.0版本为止已经支持越来越多的数据类型,像传统数据库中的VCHAR、CHAR、DATE以及所特有的复合类型MAP、STRUCT等。Hive中的数据类型可以分为数值类型、字符串类型、日期时间类型、复合类型以及其它类型,下面分别予以介绍。
数值类型
Hive中的数值类型与Java中的数值类型很相似,区别在于有些类型的名称不一样,可以概括为如下的表格:
类型名称
大小
最小值
最大值
示例
TINYINT
1字节
-128
127
45Y
SMALLINT
2字节
-32768
32767
100S
INT
4字节
-2,147,483,648
2,147,483,647
36
BIGINT
8字节
-9,223,372,036,854,775,808
9,223,372,036,854,775,807
2000L
FLOAT
4字节
--
---
4字节单精度
DOUBLE
8字节
--
--
8字节双精度
DECIMAL
--
--
--
DECIMAL(9, 7)
默认情况下,整数常量被当做INT处理,除非整数常量超出了INT类型的取值范围或者在整数常量跟着Y、S、L等后缀,则常量将会作为TINYINT、SMA