本文将介绍hive中创建表时涉及的不同的数据类型。Hive中的数据类型分为以下四种:
Column Types列类型
Literals文字
Null Values空值
Complex Types复杂类型
Column Types列类型
Column Types作为hive列数据类型。
他们如下:
Integral Types:整数类型,分以下4种:
长整型BIGINT(eg:10L)
整形INT(eg:10)
短整型SMALLINT(eg:10S)
超短整型TINYINT(eg:10S)
String Types:字符串类型:
字符串类型的数据类型可以指定使用单引号(')和双引号(" ")。它包含两个数据类型:VARCHAR和CHAR。HIVE遵循c类型转义字符
VARCHAR(可变长) 长度范围:1 to 65355
CHAR(定长) 长度范围: 1 to 255
Timestamp时间戳:
它支持传统的UNIX时间戳与可选的纳秒精度。它支持java.sql.Timestamp“YYYY-MM-DD HH:MM:SS.fffffffff”格式和”yyyy-mm-dd hh:mm:ss.ffffffffff”格式。
Dates日期类型:
日期值描述的年/月/日{ { YYYY-MM-DD } }格式
Decimals类型:hive的十进制类型和java的十进制类型一样,用来表示不变的任意精度,语法如下:
DECIMAL(precision, scale)
decimal(10,0)
Union Types类型:Union Types是一个异构数据类型。您可以用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文字类型:
Floating Point Types浮点类型:
Decimal Type十进制类型:只是浮点值范围高于双精度类型。范围大约是负的10的308次方 到正10的 308次方。
Null Value类型:没有值
Complex Types复杂类型有以下几种:
Arrays:和java中的arrays一样
Maps:和java中的maps类似
Structs:类似于使用复杂的数据备注