本章介紹Hive不同的數(shù)據(jù)類型,用于創(chuàng)建表。Hive所有數(shù)據(jù)類型分為四種類型,給出如下:
列類型被用作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 |
它支持傳統(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}}.
在Hive 小數(shù)類型與Java大十進(jìn)制格式相同。它是用于表示不可改變?nèi)我饩取UZ法和示例如下:
DECIMAL(precision, scale) decimal(10,0)
聯(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)類型是只不過有小數(shù)點(diǎn)的數(shù)字。通常,這種類型的數(shù)據(jù)組成DOUBLE數(shù)據(jù)類型。
十進(jìn)制數(shù)據(jù)類型是只不過浮點(diǎn)值范圍比DOUBLE數(shù)據(jù)類型更大。十進(jìn)制類型的范圍大約是
-10
-308到 10
308.
缺少值通過特殊值 - NULL表示。
Hive復(fù)雜數(shù)據(jù)類型如下:
在Hive 數(shù)組與在Java中使用的方法相同。
Syntax: ARRAY<data_type>
映射在Hive類似于Java的映射。
Syntax: MAP<primitive_type, data_type>
在Hive結(jié)構(gòu)體類似于使用復(fù)雜的數(shù)據(jù)。
Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>
更多建議: