Hive 数据类型
本章介绍了Hive中不同的数据类型,这些类型涉及到表的创建。Hive中的所有数据类型分为四种类型,如下所示:
- 列类型
- 字面量
- 空值
- 复杂类型
阅读更多:Hive 教程
列类型
列类型用作Hive的列数据类型。它们如下:
整型
整数类型数据可以使用整型数据类型 INT 指定。当数据范围超出 INT 的范围时,需要使用 BIGINT。如果数据范围小于 INT,则使用 SMALLINT。TINYINT 小于 SMALLINT。
以下表格描述了各种 INT 数据类型:
类型 | 后缀 | 示例 |
---|---|---|
TINYINT | Y | 10Y |
SMALLINT | S | 10S |
INT | - | 10 |
BIGINT | L | 10L |
字符串类型
字符串类型数据类型可以使用单引号(”)或双引号(” “)指定。它包含两种数据类型:VARCHAR 和 CHAR。Hive遵循C类型转义字符。
以下表格描述了各种CHAR数据类型:
数据类型 | 长度 |
---|---|
VARCHAR | 1到65355 |
CHAR | 255 |
时间戳
它支持带有可选纳秒精度的传统UNIX时间戳。支持java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”和格式“yyyy-mm-dd hh:mm:ss.ffffffffff”。
日期
DATE值以年/月/日格式{{YYYY-MM-DD}}描述。
十进制数
Hive中的DECIMAL类型与Java的BigDecimal格式相同。用于表示不可变任意精度。其语法和示例如如下:
DECIMAL(precision, scale)
decimal(10,0)
联合类型
联合是异构数据类型的集合。您可以使用 create union 创建一个实例。其语法和示例如下:
UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>
{0:1}
{1:2.0}
{2:["three","four"]}
{3:{"a":5,"b":"five"}}
{2:["six","seven"]}
{3:{"a":8,"b":"eight"}}
{0:9}
{1:10.0}
字面量
在Hive中使用以下字面量:
浮点类型
浮点类型就是带有小数点的数字。通常,这种类型的数据由DOUBLE数据类型组成。
十进制类型
-308 308
空值
缺失值由特殊值NULL表示。
复杂类型
Hive的复杂数据类型如下:
数组
在Hive中,数组的使用方式与在Java中的使用方式相同。
语法: ARRAY<data_type>
映射
在Hive中,Maps与Java Maps类似。
语法:MAP<primitive_type, data_type>
结构体
在Hive中,结构体类似于使用带注释的复杂数据。
语法:STRUCT<col_name : data_type [COMMENT col_comment], ...>