Hive 數(shù)據(jù)類(lèi)型

2021-09-29 09:47 更新

本章介紹Hive不同的數(shù)據(jù)類(lèi)型,用于創(chuàng)建表。Hive所有數(shù)據(jù)類(lèi)型分為四種類(lèi)型,給出如下:

  • 列類(lèi)型
  • 文字
  • Null 值
  • 復(fù)雜類(lèi)型

列類(lèi)型

列類(lèi)型被用作Hive的列數(shù)據(jù)類(lèi)型。它們?nèi)缦拢?/p>

整型

整型數(shù)據(jù)可以指定使用整型數(shù)據(jù)類(lèi)型,INT。當(dāng)數(shù)據(jù)范圍超過(guò)INT的范圍,需要使用BIGINT,如果數(shù)據(jù)范圍比INT小,使用SMALLINT。 TINYINT比SMALLINT小。

下表描述了各種INT數(shù)據(jù)類(lèi)型:

類(lèi)型 后綴 示例
TINYINT Y 10Y
SMALLINT S 10S
INT - 10
BIGINT L 10L

字符串類(lèi)型

字符串類(lèi)型的數(shù)據(jù)類(lèi)型可以使用單引號(hào)('')或雙引號(hào)(“”)來(lái)指定。它包含兩個(gè)數(shù)據(jù)類(lèi)型:VARCHAR和CHAR。Hive遵循C-類(lèi)型的轉(zhuǎn)義字符。

下表描述了各種CHAR數(shù)據(jù)類(lèi)型:

數(shù)據(jù)類(lèi)型 長(zhǎng)度
VARCHAR 1 to 65355
CHAR 255

時(shí)間戳

它支持傳統(tǒng)的UNIX時(shí)間戳可選納秒的精度。它支持的java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”和格式“YYYY-MM-DD HH:MM:ss.ffffffffff”。

日期

DATE值在年/月/日的格式形式描述 {{YYYY-MM-DD}}.

小數(shù)點(diǎn)

在Hive 小數(shù)類(lèi)型與Java大十進(jìn)制格式相同。它是用于表示不可改變?nèi)我饩取UZ(yǔ)法和示例如下:

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

聯(lián)合類(lèi)型

聯(lián)合是異類(lèi)的數(shù)據(jù)類(lèi)型的集合??梢允褂寐?lián)合創(chuàng)建的一個(gè)實(shí)例。語(yǔ)法和示例如下:

UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>

{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中使用的文字中:

浮點(diǎn)類(lèi)型

浮點(diǎn)類(lèi)型是只不過(guò)有小數(shù)點(diǎn)的數(shù)字。通常,這種類(lèi)型的數(shù)據(jù)組成DOUBLE數(shù)據(jù)類(lèi)型。

十進(jìn)制類(lèi)型

十進(jìn)制數(shù)據(jù)類(lèi)型是只不過(guò)浮點(diǎn)值范圍比DOUBLE數(shù)據(jù)類(lèi)型更大。十進(jìn)制類(lèi)型的范圍大約是

 -10

-308

 到 10

308

.

Null 值

缺少值通過(guò)特殊值 - NULL表示。

復(fù)雜類(lèi)型

Hive復(fù)雜數(shù)據(jù)類(lèi)型如下:

數(shù)組

在Hive 數(shù)組與在Java中使用的方法相同。

Syntax: ARRAY<data_type>

映射

映射在Hive類(lèi)似于Java的映射。

Syntax: MAP<primitive_type, data_type>

結(jié)構(gòu)體

在Hive結(jié)構(gòu)體類(lèi)似于使用復(fù)雜的數(shù)據(jù)。

Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>





以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)