hive 学习系列一(数据类型的定义)
数字类型(Numeric Types)
整型
TINYINT(取值范围:-128 -- 127)
SMALLINT(取值范围:-32,768 to 32,767)
INT/INTEGER(取值范围: -2,147,483,648 to 2,147,483,647)
BIGINT(取值范围: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807)
使用举例
数据类型 后缀 举例
TINYINT Y 100Y
SMALLINT S 100S
BIGINT L 100L
小数
Float(4byte位双精度小数,精确到8位小数)
Double(8byte位双精度小数, 精确到小数点后16位)
DECIMAL(自定义小数,长度自定义)
时间类型
主要有两个:
TIMESTAMP: 时间戳,类似2018-09-09 11:59:59
DATE:日期,类似2018-09-09
其他一个时间间隔:(INTERVAL)如感兴趣,可以参考官网:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-Intervals
字符串类型
CHAR (最长指定255位)
VARCHAR(指定的长度范围0--65535)
STRING (单引号'' 或者双引号括起来的内容,注意转义字符)
CREATE TABLE foo (bar CHAR(10))
CREATE TABLE foo1 (bar VARCHAR(1000))
其他
BOOLEAN (类似java boolean)
BINARY (2进制格式)
复杂类型
arrays: ARRAY<data_type> (Note: negative values and non-constant expressions are allowed as of Hive 0.14.)
maps: MAP<primitive_type, data_type> (Note: negative values and non-constant expressions are allowed as of Hive 0.14.)
structs: STRUCT<col_name : data_type [COMMENT col_comment], ...>
union: UNIONTYPE<data_type, data_type, ...> (Note: Only available starting with Hive 0.7.0.) (新的数据类型使用方法有待研究)
用法举例:
create table if not exists employee(
name string,
salary float,
subordinates array<string>,
decutions map<string, float>,
struct<street:String, city:string, state:string, zip:int>
)
分别表示名字,薪水,下属员工, 薪水扣除事项(公积金、医疗保险),地址(街道,城市,州,)
参考(hive 官网:数据类型: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes-char )