Hive数据类型
Hive数据类型 | Java数据类型 | 长度 | 例子 |
---|
tinyint | byte | 1byte有符号整数 | 3 |
smalint | short | 2byte有符号整数 | 3 |
int | int | 4byte有符号整数 | 3 |
bigint | long | 8byte有符号整数 | 3 |
boolean | boolean | 布尔类型,true或者false | true |
float | float | 单精度浮点数 | 1.2 |
double | double | 双精度浮点数 | 1.23 |
string | string | 字符系列。可以指定字符集。可以使用单引号或者双引号 | ’ now is the time’ “for all good men” |
timestamp | ~ | 时间类型 | ~ |
binary | ~ | 字节数组 | ~ |
数据类型 | 描述 | 示例 |
---|
struct | 和c语言中的struct类似,例,如果某个列的数据类型是STRUCT{first STRING, lastSTRING},那么第1个元素可以通过字段.first来引用 | struct() |
map | MAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素 | map() |
array | 数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用 | array() |
例: 假设某表有如下一行,我们用JSON格式来表示其数据结构。在Hive下访问的格式为
{
"name": "songsong",
"friends": ["bingbing" , "lili"] ,
"children": {
"xiao song": 18 ,
"xiaoxiao song": 19
}
"address": {
"street": "hui long guan" ,
"city": "beijing"
}
}