Hive 0.13 数据类型
hive支持的數據類型路下
數值類型 Numeric Types
- TINYINT?(1字節,數據范圍:?-128?to?127)
- SMALLINT?(2字節,數據范圍:?-32,768?to?32,767)
- INT?(4字節,數據范圍:-2,147,483,648?to?2,147,483,647)
- BIGINT?(8字節,數據范圍:?-9,223,372,036,854,775,808?to?9,223,372,036,854,775,807)
- FLOAT?(4字節, 單精度浮點數)
- DOUBLE?(8字節,雙精度浮點數)
- DECIMAL
- Introduced in Hive?0.11.0?with a precision of 38 digits
- Hive?0.13.0?introduced user definable precision and scale
日期/時間類型 Date/Time Types?
- TIMESTAMP?(Hive?0.8.0以上支持)
- DATE?(Hive?0.12.0以上支持)
字符串類型 String Types
- STRING
- VARCHAR?(Hive?0.12.0以上支持)
- CHAR?(Hive?0.13.0以上支持)
Misc Types
- BOOLEAN
- BINARY?(Hive?0.8.0以上支持)
復合類型 Complex Types
- arrays:?ARRAY<data_type>
- maps:?MAP<primitive_type, data_type>
- structs:?STRUCT<col_name : data_type [COMMENT col_comment], ...>
- union:?UNIONTYPE<data_type, data_type, ...>?(Hive?0.7.0以上支持)
列類型 Column Types
Integral Types (TINYINT,?SMALLINT,?INT,?BIGINT)
數值類型默認是int,如果數值超出int的范圍,就會被解釋為bigint。
?數值后面加上后綴表示:
| TINYINT | Y | 100Y |
| SMALLINT | S | 100S |
| BIGINT | L | 100L |
Strings
字符串可以用單引號(')或雙引號(“)。Hive在字符串中使用C-Style的轉義。
Varchar
Varchar types 創建的長度是 ( 1 到 65355), 在字符串中容許使用最大數量的字符. 如果string類型轉換成varchar類型, 長度超過了最大值,將會被截斷。 字符長度是由字符串所包含的數量決定.
Version
Varchar 類型在 Hive 0.12.0中支持 (HIVE-4844).
Char
最大固定長度255.
| CREATE?TABLE?foo (bar?CHAR(10)) |
Version
Char類型在Hive 0.13.0中支持 (HIVE-5191).
Timestamps
?支持傳統的unix時間戳,可選的納秒級精度。
支持的轉換:
- 整型數值類型:解讀為以秒為單位的UNIX時間戳
- 浮動點數值類型:解讀為以秒和小數精度為單位的UNIX時間戳
- 字符串:JDBC兼容的java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”(9位小數位精度)
時間戳被解釋是與timezone無關,存儲為從UNIX紀元的偏移量。提供便利的UDF和時區轉換(to_utc_timestamp,from_utc_timestamp)。
所有現有datetime的UDF(月,日,年,小時,等)可以工作于TIMESTAMP數據類型。
Version
Timestamps在Hive 0.8.0支持 (HIVE-2272).
Dates
日期值描述一個特定的年/月/日的{ { YYYY - MM - DD } }.?
例, DATE '2013--01--01'. Date 類型沒有時間.
Date 類型支持的范圍是是 0000--01--01 to 9999--12--31, 依賴于原始的Java支持的日期類型.
Version
Dates 在 in Hive 0.12.0支持 (HIVE-4055).
轉換 Dates
Date類型能和 Timestamp, String互相轉換.
| cast(date as date) | Same date value |
| cast(timestamp as date) | The year/month/day of the timestamp is determined, based on the local timezone, and returned as a date value. |
| cast(string as date) | If the string is in the form 'YYYY-MM-DD', then a date value corresponding to that year/month/day is returned. If the string value does not match this formate, then NULL is returned. |
| cast(date as timestamp) | A timestamp value is generated corresponding to midnight of the year/month/day of the date value, based on the local timezone. |
| cast(date as string) | The year/month/day represented by the Date is formatted as a string in the form 'YYYY-MM-DD'. |
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的Hive 0.13 数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hive加载大文件(3G)
- 下一篇: redhat 5.6 启动出现 UNEX