1. 程式人生 > >Hive支援的資料型別!基本資料型別!!複雜資料型別!!

Hive支援的資料型別!基本資料型別!!複雜資料型別!!

Hive支援的資料型別分為兩類,即基本資料型別和複雜資料型別.

基本資料型別包括數值型、布林型和字串型別,

複雜資料型別包括資料組(ARRAY)、對映(MAP)、結構體(STRUCT)和共同體(UNION).

其中,基礎資料型別包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE。下面的表格列出這些基礎型別所佔的位元組以及從什麼版本開始支援這些型別。

資料型別 所佔位元組 開始支援版本
TINYINT 1byte,-128 ~ 127
SMALLINT 2byte,-32,768 ~ 32,767
INT 4byte,-2,147,483,648 ~ 2,147,483,647
BIGINT 8byte,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
BOOLEAN
FLOAT 4byte單精度
DOUBLE 8byte雙精度
STRING
BINARY 從Hive0.8.0開始支援
TIMESTAMP 從Hive0.8.0開始支援
DECIMAL 從Hive0.11.0開始支援
CHAR 從Hive0.13.0開始支援
VARCHAR 從Hive0.12.0開始支援
DATE 從Hive0.12.0開始支援

複雜型別包括ARRAY,MAP,STRUCT,UNION,這些複雜型別是由基礎型別組成的。

  ARRAY:ARRAY型別是由一系列相同資料型別的元素組成,這些元素可以通過下標來訪問。比如有一個ARRAY型別的變數fruits,它是由['apple','orange','mango']組成,那麼我們可以通過fruits[1]來訪問元素orange,因為ARRAY型別的下標是從0開始的;
  MAP:MAP包含key->value鍵值對,可以通過key來訪問元素。

比如”userlist”是一個map型別,其中username是key,password是value;那麼我們可以通過userlist['username']來得到這個使用者對應的password;
  STRUCT:STRUCT可以包含不同資料型別的元素。這些元素可以通過”點語法”的方式來得到所需要的元素,比如user是一個STRUCT型別,那麼可以通過user.address得到這個使用者的地址。
  UNION: UNIONTYPE,他是從Hive 0.7.0開始支援的。