Hive(7) Hive的数据类型
Hive的数据类型
基本数据类型
类型名称 | 描述 | 举例 |
---|---|---|
boolean | true/false | true |
tinyint | 1字节的有符号整数 | 1 |
smallint | 2字节的有符号整数 | 1 |
int | 4字节的有符号整数 | 1 |
bigint | 8字节的有符号整数 | 1 |
float | 4字节单精度浮点数 | 1.0 |
double | 8字节单精度浮点数 | 1.0 |
string | 字符串(不设长度) | “abc” |
varchar | 字符串(1-65355长度,超长截断) | “abc” |
timestamp | 时间戳 | 1563157873 |
date | 日期 | 20190715 |
复合数据类型
类型名称 | 描述 | 举例 |
---|---|---|
array |
一组有序的字段,字段类型必须相同 array(元素1,元素2) | Array(1,2,3) |
map |
一组无序的键值对 map(k1,v1,k2,v2) |
Map(‘a’,1,'b',2) |
struct |
一组命名的字段,字段类型可以不同 struct(元素1,元素2) |
Struct('a',1,2,0) |
-
array
类型的字段的元素访问方式- 通过下标获取元素,下标从
0
开始 - 如获取第一个元素
array[0]
- 通过下标获取元素,下标从
-
map
类型字段的元素访问方式- 通过键获取值
- 如获取
a
这个key
对应的value
map['a']
-
struct
类型字段的元素获取方式- 定义一个字段
c
的类型为struct{a int, b string}
- 获取
a
和b
的值- 使用
c.a
和c.b
获取其中的元素值
- 使用
- 这里可以把这种类型看成是一个对象
- 定义一个字段
-
示例:创建一张表,包含了
array、map、struct
类型的字段
create table complex(
col1 array<int>,
col2 map<string,int>,
col3 struct<a:string,b:int,c:double>
)
Hive官网(学会查找帮助)
平时工作中,要多查看Hive官方文档
hive
官网:https://hive.apache.org/
Hql
使用帮助:https://cwiki.apache.org/confluence/display/Hive/LanguageManual