一、基礎數據類型
1、Hive支持的基礎數據類型包括:bool、tinyint、smallint、int、bigint、float、double、string、timestamp、date、binary、array、map、struct、union。
示例代碼:
CREATE TABLE persons (
id INT,
name STRING,
age INT,
gender BOOLEAN,
salary FLOAT
);
2、Hive中的整型分為tinyint、smallint、int、bigint,分別對應8位、16位、32位、64位整數類型;
示例代碼:
CREATE TABLE users (
id TINYINT,
name STRING,
age SMALLINT,
gender BOOLEAN,
salary BIGINT
);
3、Hive中的浮點數類型分為float和double,分別對應單精度浮點數和雙精度浮點數;
示例代碼:
CREATE TABLE records (
id INT,
name STRING,
score FLOAT
);
4、Hive中的字符串類型為string,可以存儲任意長度的字符串;
示例代碼:
CREATE TABLE students (
id INT,
name STRING,
grade STRING
);
5、Hive中的布爾類型為boolean,取值為true或false;
示例代碼:
CREATE TABLE customers (
id INT,
name STRING,
married BOOLEAN
);
二、時間類型
1、Hive中的時間類型包括timestamp和date,分別對應時間戳和日期類型;
示例代碼:
CREATE TABLE logs (
id INT,
request_time TIMESTAMP,
request_date DATE
);
2、使用時間類型時,可以通過Unix時間戳將時間類型轉換為整數類型,也可以通過from_unixtime函數將整數類型轉換為時間類型;
示例代碼:
SELECT from_unixtime(1580196047);
SELECT unix_timestamp('2020-01-28 10:30:47');
3、Hive中還提供了一些函數用於處理時間類型,包括year、quarter、month、day、hour、minute、second等;
示例代碼:
SELECT year(request_time), month(request_time), day(request_time) FROM logs;
三、複雜數據類型
1、Hive中的數組類型為array,可以包含任意數量的元素,元素類型必須相同;
示例代碼:
CREATE TABLE products (
id INT,
name STRING,
tags ARRAY
);
2、Hive中的映射類型為map,可以將一組key-value對存儲在一個字段中;
示例代碼:
CREATE TABLE books (
id INT,
title STRING,
author MAP
);
3、Hive中的結構體類型為struct,可以將多個字段打包為一個字段;
示例代碼:
CREATE TABLE employees (
id INT,
name STRING,
contact STRUCT,
address STRUCT
);
4、Hive中的聯合類型為union,可以將多個字段根據不同的數據類型組合在一起;
示例代碼:
CREATE TABLE items (
id INT,
name STRING,
price UNIONTYPE
);
四、類型轉換
1、Hive中的數據類型可以通過cast函數進行類型轉換;
示例代碼:
SELECT cast('100' AS INT), cast('3.14' AS FLOAT), cast('true' AS BOOLEAN);
2、Hive中的數據類型也可以根據需要自動進行類型轉換,但盡量避免這種情況,因為會影響查詢性能;
3、在Join和Union操作中,如果需要將數據類型相同的表合併,需要對數據類型進行調整;
示例代碼:
SELECT id, cast(price AS FLOAT) AS price FROM table1 UNION ALL SELECT id, cast(price AS FLOAT) AS price FROM table2;
五、總結
1、Hive支持多種數據類型,包括基礎數據類型、時間類型、複雜數據類型;
2、在使用數據類型時,需要注意類型的選擇和轉換,以保證查詢性能;
3、在Join和Union操作中,需要特別注意數據類型匹配的問題,以避免錯誤和性能問題。
原創文章,作者:LNAVW,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/369413.html
微信掃一掃
支付寶掃一掃