- Hive 教程
- Hive - 首頁
- Hive - 簡介
- Hive - 安裝
- Hive - 資料型別
- Hive - 建立資料庫
- Hive - 刪除資料庫
- Hive - 建立表
- Hive - 修改表
- Hive - 刪除表
- Hive - 分割槽
- Hive - 內建運算子
- Hive - 內建函式
- Hive - 檢視和索引
- HiveQL
- HiveQL - Select Where
- HiveQL - Select Order By
- HiveQL - Select Group By
- HiveQL - Select Joins
- Hive 有用資源
- Hive - 問答
- Hive - 快速指南
- Hive - 有用資源
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], ...>
廣告