Hive數據類型
本章介紹Hive不同的數據類型,用於創建表。Hive所有數據類型分為四種類型,給出如下:
- 列類型
- 文字
- Null 值
- 複雜類型
列類型
列類型被用作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 to 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 小數類型與Java大十進製格式相同。它是用於表示不可改變任意精度。語法和示例如下:
DECIMAL(precision, scale) decimal(10,0)
聯合類型
聯合是異類的數據類型的集合。可以使用聯合創建的一個實例。語法和示例如下:
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 值
缺少值通過特殊值 - 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], ...>