Hive - 資料型別



本章將帶您瞭解 Hive 中不同的資料型別,這些資料型別與表建立有關。Hive 中的所有資料型別分為四類,如下所示:

  • 列型別
  • 字面量
  • 空值
  • 複雜型別

列型別

列型別用作 Hive 的列資料型別。它們如下所示:

整型

整數型別資料可以使用整型資料型別 INT 指定。當資料範圍超過 INT 的範圍時,需要使用 BIGINT;如果資料範圍小於 INT,則使用 SMALLINT。TINYINT 小於 SMALLINT。

下表描述了各種 INT 資料型別:

型別 字尾 示例
TINYINT Y 10Y
SMALLINT S 10S
INT - 10
BIGINT L 10L

字串型別

字串型別資料可以使用單引號 (' ') 或雙引號 (" ") 指定。它包含兩種資料型別:VARCHAR 和 CHAR。Hive 遵循 C 型別的跳脫字元。

下表描述了各種 CHAR 資料型別:

資料型別 長度
VARCHAR 1 到 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 的 BigDecimal 格式相同。它用於表示不可變的任意精度。語法和示例如下:

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

聯合型別

聯合是異構資料型別的集合。您可以使用create union建立例項。語法和示例如下:

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 中使用以下字面量:

浮點型別

浮點型別只是帶有小數點的數字。通常,這種型別的資料由 DOUBLE 資料型別組成。

十進位制型別

十進位制型別資料只是比 DOUBLE 資料類型範圍更大的浮點值。十進位制型別的範圍約為 -10-308 到 10308

空值

缺失值由特殊值 NULL 表示。

複雜型別

Hive 複雜資料型別如下所示:

陣列

Hive 中的陣列與在 Java 中的使用方式相同。

Syntax: ARRAY<data_type>

對映

Hive 中的對映類似於 Java 對映。

Syntax: MAP<primitive_type, data_type>

結構體

Hive 中的結構體類似於使用帶註釋的複雜資料。

Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>
廣告
© . All rights reserved.