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)
版权声明:《 Hive 的数据类型 》为明妃原创文章,转载请注明出处!
最后编辑:2019-12-30 05:12:48