hive支持的数据类型

目录

一、hive数据类型

1.基础型

2.复杂型

二、类型转换

1.隐式转换

2.显示转换


一、hive数据类型

1.基础型

数据类型 长度大小 示例
TINYINT 1字节有符号整数,范围:-128~127 10Y
SMALLINT 2字节有符号整数,范围:-32768~32767 10S
INT 4字节有符号整数 10
BIGINT 8字节有符号整数 10L
FLOAT 4字节单精度浮点数 1.0
DOUBLE 8字节双精度浮点数 1.0
DECIMAL 任意精度带符号小数,范围:-99.99到99.99 DECIMAL(20, 2)
BOOLEAN true/false TRUE
STRING 字符串,长度不定 “a”, ‘b’
VARCHAR 字符串,长度不定,有上限 “a”, ‘b’
CHAR 字符串,固定长度 “a”, ‘b’
BINARY 存储变长的二进制数据
TIMESTAMP 时间戳,纳秒精度 1650778130
DATE 日期 '2023-02-27'

2.复杂型

数据类型 描述 示例
ARRAY 存储同类型数据 ARRAY< data_type>
MAP key-value,key必须为原始类型,value可以是任意类型 MAP< primitive_type, data_type>
STRUCT 类型可以不同 STRUCT< col_name : data_type [COMMENT col_comment], …>
UNION 在有限取值范围内的一个值 UNIONTYPE< data_type, data_type, …>

Hive 除了支持 STRUCTARRAYMAP 这些原生集合类型,还支持集合的组合,不支持集合里再组合多个集合。

举例:MAP 嵌套 ARRAY,手动设置集合格式的数据非常麻烦,建议采用INSERT INTO SELECT形式构造数据再插入UNION 表

二、类型转换

1.隐式转换

Hive的类型层次中,可以根据需要进行隐式的类型转换,例如 TINYINT 与 INT相加,则会将TINYINT 转化成INT 然后相加。

隐式转换的规则:

任意数值类型都可以转换成更宽的数据类型(不会导致精度丢失)或者文本类型;
所有的文本类型都可以隐式地转换成另一种文本类型。也可以被转换成 DOUBLE 或者 DECIMAL,转换失败时抛出异常;
BOOLEAN 不能做任何的类型转换;
时间戳和日期可以隐式地转换成文本类型。
 

2.显示转换

用 CAST 函数进行显式的类型转换

示例:

select cast(12345.89 as string);

hive支持的数据类型_第1张图片

 

你可能感兴趣的:(hive,java,hadoop)