Hive支援的資料型別!基本資料型別!!複雜資料型別!!
阿新 • • 發佈:2018-12-21
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來訪問元素。
STRUCT:STRUCT可以包含不同資料型別的元素。這些元素可以通過”點語法”的方式來得到所需要的元素,比如user是一個STRUCT型別,那麼可以通過user.address得到這個使用者的地址。
UNION: UNIONTYPE,他是從Hive 0.7.0開始支援的。