📜  Hive-数据类型

📅  最后修改于: 2020-11-30 04:51:08             🧑  作者: Mango


本章将带您了解Hive中创建表所涉及的不同数据类型。 Hive中的所有数据类型分为以下四种类型:

  • 列类型
  • 字面量
  • 空值
  • 复杂类型

列类型

列类型用作Hive的列数据类型。它们如下:

整体类型

可以使用整数数据类型INT指定整数类型数据。当数据范围超出INT的范围时,您需要使用BIGINT;如果数据范围小于INT,则使用SMALLINT。 TINYINT小于SMALLINT。

下表描述了各种INT数据类型:

Type Postfix Example
TINYINT Y 10Y
SMALLINT S 10S
INT 10
BIGINT L 10L

字符串类型

可以使用单引号(”)或双引号(“”)来指定字符串类型的数据类型。它包含两种数据类型:VARCHAR和CHAR。蜂巢遵循C类型的转义字符。

下表描述了各种CHAR数据类型:

Data Type Length
VARCHAR 1 to 65355
CHAR 255

时间戳记

它以可选的纳秒精度支持传统的UNIX时间戳。它支持java.sql.Timestamp格式“ YYYY-MM-DD HH:MM:SS.fffffffff”和格式“ yyyy-mm-dd hh:mm:ss.ffffffffff”。

日期

DATE值以年/月/日的格式{{YYYY-MM-DD}}进行描述。

小数点

Hive中的DECIMAL类型与Java的Big Decimal格式相同。它用于表示不变的任意精度。语法和示例如下:

DECIMAL(precision, scale)
decimal(10,0)

联合类型

联合是异构数据类型的集合。您可以使用create union创建实例。语法和示例如下:

UNIONTYPE, struct>

{0:1} 
{1:2.0} 
{2:["three","four"]} 
{3:{"a":5,"b":"five"}} 
{2:["six","seven"]} 
{3:{"a":8,"b":"eight"}} 
{0:9} 
{1:10.0}

字面量

Hive中使用以下字面量:

浮点类型

浮点类型就是带小数点的数字。通常,此数据类型由DOUBLE数据类型组成。

小数类型

十进制类型数据不过是浮点值,其范围比DOUBLE数据类型高。小数类型的范围是大约-10 -308 10 308。

空值

缺失值由特殊值NULL表示。

复杂类型

Hive复杂数据类型如下:

数组

Hive中的数组的使用方式与Java中使用的方式相同。

Syntax: ARRAY

地图

Hive中的地图类似于Java地图。

Syntax: MAP

结构

Hive中的结构类似于使用带注释的复杂数据。

Syntax: STRUCT