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], ...>
广告
© . All rights reserved.