Hive 的数据类型

Hive 的基本数据类型

与 Java 类似

Hive的数据类型 Java是数据类型 长度
TINYINT byte 1byte整数
SMALINT short 2byte整数
INT int 4byte整数
BIGINT long 8byte整数
BOOLEAN boolean 布尔值
FLOAT float 单精度浮点数
DOUBLE double 双精度浮点数
STRING string 字符串
TIMESTAMP 时间类型
BINARY 字节数组

Hive的集合数据类型

数据类型 描述 语法实例 实例
ARRAY 相当于Java的数组 array<基本类型> [‘Bob’,’bigdataboy’,’cn’]
MAP 相当与Java的Array集合,键值对 map<基本类型-键,基本类型-值> {‘name’,’bigdataboy’}
STRUCT 是一个复合结构类型 struct<> {‘province’:基本类型,’city’:基本类型}

集合数据类型测试

字段及类型

四个字段
name string, friends array<string>, children map<string, int>, addr struct<'省':string, '市':string>

分割符说明

字段使用 , (英文逗号)分隔
array<> 类型使用 _ (下划线)分割
map<> 类型手机用 : (冒号)分割

测试数据

# 数据说明
Bob,            第一个字段
aa_bb,          第二个 array<>字段
aa:12_bb:13,    第三个 map<>字段
四川_成都        第四个 struct<>字段

# 完整测试数据
Bob,aa_bb,aa:12_bb:13,四川_成都
Black,cc_dd,cc:24_dd:23,四川_泸州

Hive 创建表

create table infor(
name string, 
friends array<string>, 
children map<string, int>, 
addr struct<province:string, city:string>
)
row format delimited
fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

在 Hive 中创建好表,加载到 Hive 中

load data local inpath '加载的测试数据文件路径' into table infor;

Hive 查看加载的数据

# 查看所有数据
hive> select * from infor;
OK
Bob        ["aa","bb"]    {"aa":12,"bb":13}    {"province":"四川","city":"成都"}
Black    ["cc","dd"]    {"cc":24,"dd":23}    {"province":"四川","city":"泸州"}
Time taken: 2.4 seconds, Fetched: 2 row(s)

# 查看不同类型的数据
hive> select name,friends[0],children['aa'],addr.province from infor;
OK
Bob      aa    12      四川
Black    cc    NULL    四川
Time taken: 0.098 seconds, Fetched: 2 row(s)
发表评论 / Comment

用心评论~