一、基础数据类型
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/n/369413.html
微信扫一扫
支付宝扫一扫