Hive 数据类型
本章将带您了解 Hive 中的不同数据类型,这些数据类型涉及到表的创建。 Hive中所有的数据类型分为四种,如下:
Column Types
Literals
Null Values
Complex Types
Column Types
列类型用作 Hive 的列数据类型。它们如下:
Integral Types
可以使用整数数据类型 INT 指定整数类型数据。当数据范围超过INT的范围时,需要使用BIGINT,如果数据范围小于INT,则使用SMALLINT。 TINYINT 比 SMALLINT 小。
下表描述了各种 INT 数据类型:
类型 |
后缀 |
示例 |
TINYINT |
Y |
10 年 |
SMALLINT |
S |
10S |
INT |
- |
10 |
BIGINT |
L |
10L |
String Types
可以使用单引号 (' ') 或双引号 ("") 指定字符串类型的数据类型。它包含两种数据类型:VARCHAR 和 CHAR。 Hive 遵循 C 类型转义字符。
下表描述了各种 CHAR 数据类型:
数据类型 |
长度 |
VARCHAR |
1 到 65355 |
CHAR |
255 |
Timestamp
它支持具有可选纳秒精度的传统 UNIX 时间戳。支持java.sql.Timestamp格式"YYYY-MM-DD HH:MM:SS.fffffffff"和格式"yyyy-mm-dd hh:mm:ss.ffffffffff"。
Dates
DATE 值以年/月/日格式以 {{YYYY-MM-DD}} 的形式描述。
Decimals
Hive 中的 DECIMAL 类型与 Java 的 Big Decimal 格式相同。它用于表示不可变的任意精度。语法和示例如下:
DECIMAL(precision, scale)
decimal(10,0)
Union Types
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}
Literals
Hive 中使用了以下文字:
Floating Point Types
浮点类型只不过是带小数点的数字。一般这种类型的数据由DOUBLE数据类型组成。
Decimal Type
Decimal 类型的数据只不过是比 DOUBLE 数据类型范围更大的浮点值。十进制类型的范围大约是-10
-308 到 10
308。
Null Value
缺失值由特殊值 NULL 表示。
Complex Types
Hive 复杂数据类型如下:
Arrays
Hive 中数组的使用方式与 Java 中的使用方式相同。
Maps
Hive 中的地图类似于 Java 地图。
Syntax: MAP<primitive_type, data_type>
Structs
Hive 中的结构类似于使用带有注释的复杂数据。
Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>