Hive - 数据类型

本章将向您介绍Hive中的不同数据类型,这些数据类型与表创建有关. Hive中的所有数据类型分为四种类型,如下所示:

  • 列类型

  • 文字

  • 空值

  • 复杂类型

列类型

列类型用作Hive的列数据类型.它们如下:

积分类型

可以使用整数数据类型INT指定整数类型数据.当数据范围超出INT范围时,需要使用BIGINT,如果数据范围小于INT,则使用SMALLINT. TINYINT小于SMALLINT.

下表描述了各种INT数据类型:

类型Postfix示例
TINYINTY10Y
SMALLINTS10S
INT-10
BIGINTL10L

字符串类型

字符串类型数据类型可以使用单引号('')或双引号("")指定.它包含两种数据类型:VARCHAR和CHAR. Hive遵循C类型转义字符.

下表描述了各种CHAR数据类型:

数据类型长度
VARCHAR1到65355
CHAR255

时间戳

它支持具有可选纳秒精度的传统UNIX时间戳.它支持java.sql.Timestamp格式"YYYY-MM-DD HH:MM:SS.fffffffff",格式为"yyyy-mm-dd hh:mm:ss.ffffffffff".

日期

DATE值以年/月/日格式描述,格式为{{YYYY-MM-DD}}.

小数h3>

Hive中的DECIMAL类型与Java的Big Decimal格式相同.它用于表示不可变的任意精度.语法和示例如下:

DECIMAL(precision, scale)
decimal(10,0)

联合类型

联盟是异构数据类型的集合.您可以使用创建联合创建实例.语法和示例如下:

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>

地图

地图在Hive中类似于Java Maps.

Syntax: MAP<primitive_type, data_type>

Structs

Hive中的结构类似于使用带注释的复杂数据.

Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>