整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

12.5.1 数据类型

hadoop 小红牛 10℃ 0评论

Hive支持原子和复杂数据类型。原子数据类型包括数值型、布尔型、字符
串类型和时间戳类型。复杂数据类型包括数组、映射和结构。Hive的数据 类型在表12-3中列出。注意,列出的是它们在HiveQL中使用的形式而不
是它们在表中序列化存储的格式(参见12.6.3节)。

表12-3. Hive的数据类型

类别

类型

描述

文字示例

基本数

TINYINT

1字节(8)有符号整数,从-128127

1

据类型

SMALLINT

2字节(16)有符号整数,从-32 76832 767

1

INT

4字节(32)有符号整数,从-2 147 483 6482 147 483 64^7

1

BIGINT

8字节(64)有符号整数,从-9 223 372 036 854 775 808 9 223 372 036 854 775 807

1

FLOAT

4字节(32)单精度浮点数

1.0

DOUBLE

8字节(64)双精度浮点数

1.0

BOOLEAN

true/false

TRUE

STRING

字符串

'a', "a"

BINARY

字节数组

不支持

TIMESTAMP

精度到纳秒的时间戳

1325502245000, '2012-01-02 03:04:05.123456789'

 

类别

类型

描述

文字示例

复杂数据类型

ARRAY

—组有序字段。字段的类型必须相同

Array(1,2)

MAP

一组无序的键/值对。键的类型必须是原子的;值可以是任意类型。同一个映射的键的类型必须相同,值的类型也必须相同

Map(‘a’,1,’b’,2)

STRUCT

一组命名的字段。字段的类型可以不同

Struct(‘a’,1,1.0)

 

①数组、映射和结构的文字形式可以通过函数得到:array()、map()、struct()三个函数都是Hive的 内置函数。

②列命名为coll、col2、col3等。

1.基本类型

虽然有些Hive的原子数据类型的命名受到MygQL数据类型名称(其中有些
和SQL-92相同)的影响,但这些数据类型基本对应于Java中的类型。有四
种有符号整数类型:TINYINT、SMALLINT、INT以及BIGINT,分别等价于
Java的byte、short、int和long原子数据类型。它们分别为1字节、2字节、4字节和8字节有符号整数。

Hive的浮点数据类型FLOAT和DOUBLE对应于Java的float和double类型,分别为32位和64位浮点数。和有些数据库不同,它不提供控制浮点 数值有效数字或小数位位数的选项。

Hive提供BOOLEAN数据类型用于存储真值(true)和假值(false)。

Hive只提供了一种存储文本的数据类型STRING。该类型是一个变长字符
串。Hive的STRING类似于其他数据库的VARCHAR,但不能声明其中最多
能存储多少个字符。(理论上其中最多能存储2GB的字符数,但如果真要物 化存储那么大的值,效率肯定很低。Sqoop提供了大对象的支持,详见15.7
节对导入大对象的讨论。)

BINARY数据类型用于存储变长的二进制数据。

TIMESTAMP数据类型存储精度为纳秒的时间戳。Hive提供了在Hive时间
戳、Unix时间戳(从UNIX纪元开始的秒数)、字符串之间进行转换的
UDF,这样就使得常用的日期操作较为容易进行处理。但是TIMESTAMP中
并未封装时区信息。可以使用to_utc_timestamp和from_utc_timestamp

函数来进行时区转换。

2.复杂类型

Hive有三种复杂数据类型:ARRAY、MAP和STRUCT。ARRAY和MAP与Java
中的同名数据类型类似,而STRUCT是一种记录类型,它封装了一个命名的 字段集合。复杂数据类型允许任意层次的嵌套。复杂数据类型声明必须使
用尖括号符号指明其中数据字段的类型。如下所示的表定义有三列,每一 列对应一种复杂数据类型:

CREATE TABLE complex ( 
coll ARRAY<INT>,
co12 MAP<STRING, INT>,
co13 STRUCT<a:STRING, b:INT, c:DOUBLE>
);

如果把表12-3中“文字示例”列中所示ARRAY、MAP和STRCUT类型的数 据加载到表中(12.6.3节要介绍需要什么格式的文件),则如下的査询展示了 每种类型的字段访问操作:

hive> SELECT collf[O], co12[‘b'], col3.c FROM complex;
1 2 1.0

转载请注明:全栈大数据 » 12.5.1 数据类型

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址