Hive基本上支持大多数关系型数据库的基本数据类型,比如不同长度的整数型和浮点型,支持布尔类型,也支持无长度限制的字符串类型一些常见的基本数据类型如下:,现在小编就来说说关于hive数据类型及实际操作?下面内容希望能帮助到你,我们来一起看看吧!
![hive数据类型及实际操作(Hive数据类型)](http://img.studyofnet.com/upimg/133955852.jpg)
hive数据类型及实际操作
Hive基本数据类型Hive基本上支持大多数关系型数据库的基本数据类型,比如不同长度的整数型和浮点型,支持布尔类型,也支持无长度限制的字符串类型。一些常见的基本数据类型如下:
类型分类 |
类型 |
长度 |
备注 |
数值类型 |
TINYINT |
1字节 |
有符号整型,如20 |
SMALLINT |
2字节 |
有符号整型,如300 | |
INT |
4字节 |
有符号整型,如9999 | |
BIGINT |
8字节 |
有符号整型 | |
FLOAT |
4字节 |
有符号单精度浮点数,如3.14159 | |
DOUBLE |
8字节 |
有符号双精度浮点数 | |
DECIMAL |
-- |
可带小数的精确数字字符串 | |
时间类型 |
TIMESTAMP |
-- |
UTC时间,时间戳:yyyy-mm-dd hh:mm:ss[.f...] |
DATE |
-- |
日期,内容格式:YYYYMMDD | |
字符类型 |
STRING |
-- |
字符串 |
VARCHAR |
字符数范围1 - 65535 |
长度不定字符串 | |
CHAR |
最大的字符数:255 |
长度固定字符串 | |
其它类型 |
BOOLEAN |
-- |
布尔类型 TRUE/FALSE |
BINARY |
-- |
字节序列 |
Hive大部分支持关系型数据的一些基本数据类型,如整数,浮点,布尔类型,时间类型,字符串类型等等。在上一章Hive基本数据类型当中有做了详细介绍。但是除了这些Hive还支持集合数据类型,如:array、struct 和 map 是集合实现
array数组Hive支持数值类型,这里hive数组和java当中数组是一致的,都是具有相同数据类型元素的集合。因为数组是有定义下标顺序的,可以通过下标快速定位数组中的元素。如:数学将在 Array[0] 中,英语将在 Array[3] 中找到。
Array< '数学'、'语文'、'信息技术'、'英语' >
Struct 结构
Hive Struct集合类型,有点类似Java当中的对象,它由字段和对应字段定义的一个数据类型组成。如下,可以定义一个学生信息的Struct结构:
--声明struct集合类型
struct <name:String, sex:String, age:INT>
--集合对象
struct<'张三','男',19>
要访问结构中的字段,和Java一样,用点来获取,比如获取上面学生信息:
'姓名:' Struct.name ' 性别:' Struct.sex ' 年龄:' Struct.age
Map 数据类型也和java的Map集合概念一致,定义一个键/值对的集合,如定义一个成绩的map集合:
Map<String, int>
map('语文',88,'数学',90,'英语',85)
第一个String用于定义键的类型,int定义值的数据类型。想要获取map集合中的数据,比如获取语文成绩,map['语文']。
例子1,创建一个学生基本信息表,如下:
CREATE TABLE stuinfo(
idnumber STRING,
basicinfo STRUCT<name:STRING,sex:STRING,age:INT>,
score MAP<STRING, INTEGER>
);
hive教程 - FreeIT教程
,