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”。
日期
日期值以年/月/日格式以{{YYYY-MM-DD}}的形式描述。
小数点
Hive中的DECIMAL类型与Java的Big Decimal格式相同。它用于表示不可变的任意精度。语法和示例如下所示:
DECIMAL(precision, scale) decimal(10,0)
联合类型
Union是异构数据类型的集合。您可以使用 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到10 308。
空值
缺少的值由特殊值NULL表示。
复杂类型
Hive复杂数据类型如下所示:
数组
Hive中的数组的使用方式与Java中使用的方式相同。
Syntax: ARRAY<data_type>
Map
Hive中的地图与Java地图类似。
Syntax: MAP<primitive_type, data_type>
结构
Hive中的结构与使用复杂数据和注释相似。
Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>
下一章:Hive 创建数据库
Hive 是一种数据库技术,可以定义数据库和表来分析结构化数据。结构化数据分析的主题是以表格形式存储数据,并传递查询来分析数据。本章介绍如何创建Hive数据库。Hive包含一个名为 default 的默认数据库。&nb ...