- Hive 教程
- Hive - 首页
- Hive - 简介
- Hive - 安装
- Hive - 数据类型
- Hive - 创建数据库
- Hive - 删除数据库
- Hive - 创建表
- Hive - 修改表
- Hive - 删除表
- Hive - 分区
- Hive - 内置运算符
- Hive - 内置函数
- Hive - 视图和索引
- HiveQL
- HiveQL - Select Where
- HiveQL - Select Order By
- HiveQL - Select Group By
- HiveQL - Select Joins
- Hive 有用资源
- Hive - 问答
- Hive - 快速指南
- 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 数据类型组成。
十进制类型
十进制类型数据只是比 DOUBLE 数据类型范围更大的浮点值。十进制类型的范围约为 -10-308 到 10308。空值
缺失值由特殊值 NULL 表示。
复杂类型
Hive 复杂数据类型如下所示:
数组
Hive 中的数组与在 Java 中的使用方式相同。
Syntax: ARRAY<data_type>
映射
Hive 中的映射类似于 Java 映射。
Syntax: MAP<primitive_type, data_type>
结构体
Hive 中的结构体类似于使用带注释的复杂数据。
Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>
广告