Hive 數(shù)據(jù)類型

2021-09-29 09:47 更新

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

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

列類型

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

整型

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

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

類型 后綴 示例
TINYINT Y 10Y
SMALLINT S 10S
INT - 10
BIGINT L 10L

字符串類型

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

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

數(shù)據(jù)類型 長度
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ù)類型與Java大十進(jìn)制格式相同。它是用于表示不可改變?nèi)我饩取UZ法和示例如下:

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

聯(lián)合類型

聯(lián)合是異類的數(shù)據(jù)類型的集合。可以使用聯(lián)合創(chuàng)建的一個(gè)實(shí)例。語法和示例如下:

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)類型

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

十進(jìn)制類型

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

 -10

-308

 到 10

308

.

Null 值

缺少值通過特殊值 - NULL表示。

復(fù)雜類型

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

數(shù)組

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

Syntax: ARRAY<data_type>

映射

映射在Hive類似于Java的映射。

Syntax: MAP<primitive_type, data_type>

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

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

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





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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)