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, children map, addr struct分割符说明
字段使用 , (英文逗号)分隔
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,
children map,
addr struct
)
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)