基本数据类型(能记住几个常用的就行)
HIVE数据类型 | Java数据类型 |
---|---|
TINYINT | byte |
SMALINT | short |
INT | int |
BIGINT | long |
BOOLEAN | boolean |
FLOAT | float |
DOUBLE | double |
STRING | string |
TIMESTAMP | “”时间类型“” |
BINARY | “字节数组” |
集合数据类型(很重要,牢记哦)
数据类型 | 描述 |
---|---|
STRUCT | struct() ==>相当于c语言中的struct,结构struct |
ARRAY | array() ==>相当于java中的array,列表array |
MAP | map() ==>相当于java中的map,键值map |
- 上面这三个是hive提供的三种复杂的集合数据类型,可以无限嵌套,
具体用法如下:
//这是一个JSON风格的例子
{
“name”:“喜羊羊”
“friend”:["美羊羊","沸羊羊"] //列表array
"teacher":{ //键值map
"慢羊羊”:50,
"小蜗":8
}
"address":{ //结构struct
"address":"羊羊大街128号"
“city”:"青青草原"
}
}
// 下面创建一个用于测试的txt文件
喜羊羊,沸羊羊_美羊羊,慢羊羊:512_小蜗:32,羊羊大街128号_青青草原
陈平安,刘羡阳_阮秀,齐静春:256_阿良:64泥瓶巷_龙泉镇
// 下面展示hive中的建表语言`。
create table test(
name string,
friends array<string>,
teacher map<string,int>,
address struct<stresst:string,city:string>
)
row fromat delimated fields terminated by ','
collection items terminated by '_'
map keys terminated by':'
lines terminated by '\b';
// 然后把txt文件写入表中就行了,本地或者hdfs上都可以(local)
load data inpath'/demo.txt' into table test;
类型转换
hive的类型转换是隐式转换,类似于java的类型转换,也就是说范围小的可以转大的,大的转小的就要强转。
隐式转换规则如下
1.任何整数类型都可以隐式的转换为大范围的,如INT转换为BIGINT,TINYINT换换为INT。
2.所有整数类型、FLOAT、STRING都可以转换为双精度DOUBLE。
3.TINYINT、SMALLINT、INT都可以转换为FLOAT。
4.BOOLEAN类型不可以转换为任何其它的类型。可以使用CAST操作显示进行数据类型转换,例如CAST(‘1’ AS INT)将把字符串’1’ 转换成整数1;如果强制类型转换失败,如执行CAST(‘X’ AS INT),表达式返回空值 NULL。
版权声明:本文为cuierdan1202原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。