Hive基本上支持大多数关系型数据库的基本数据类型,比如不同长度的整数型和浮点型,支持布尔类型,也支持无长度限制的字符串类型一些常见的基本数据类型如下:,现在小编就来说说关于hive数据类型及实际操作?下面内容希望能帮助到你,我们来一起看看吧!

hive数据类型及实际操作(Hive数据类型)

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

--

日期,内容格式:YYYY­MM­DD

字符类型

STRING

--

字符串

VARCHAR

字符数范围1 - 65535

长度不定字符串

CHAR

最大的字符数:255

长度固定字符串

其它类型

BOOLEAN

--

布尔类型 TRUE/FALSE

BINARY

--

字节序列

Hive集合数据类型

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集合

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教程

,