小工具知识网

当前位置: 首页 > 行业知识 > Hive SQL 开发指南(一)数据类型及函数

行业知识

Hive SQL 开发指南(一)数据类型及函数

2026-11-04 16:04:43 来源:互联网转载

在大���据领域,Hive SQL 是一种常用的查询语言,用于在 Hadoop上进行数据分析和处理。为了确保代码的可读性、维护性和性能,制定一套规范化的 Hive SQL 开发规范至关重要。本文将介绍 Hive SQL 的基础知识,并提供一些规范化的开发指南,帮助您高效地编写 Hive SQL 查询。

()

本系列分为

Hive SQL 开发指南(一)数据类型及函数

()

Hive SQL 开发指南(二)使用(DDL、DML,DQL)

Hive SQL 开发指南(三)优化及常见异常


 一、数据类型

整型

TINYINT – 1字节整数

SMALLINT – 2字节整数

INT – 4字节整数

BIGINT - 8 字节整数

浮点型

FLOAT – 单精度

DOUBLE – 双精度

DECIMAL类型

DECIMAL(precision, scale)

使用举例

CREATE TABLE table2024 (colTinyInt TINYINT);CREATE TABLE table2024 (colInt INT);CREATE TABLE table2024 (colSmallInt SMALLINT);CREATE TABLE table2024 (colBigInt BIGINT);CREATE TABLE table2024 (colFloat FLOAT);CREATE TABLE table2024 (colDouble DOUBLE);CREATE TABLE table2024 (a DECIMAL,b DECIMAL(9, 7));

日期类型

TIMESTAMP – 时间戳类型

说明:

支持传统的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数据类型。

DATE  -  日期类型

​​​​​​​使用举例

create table timestamp_udf (t timestamp);create table date_udf (t date);

​​​​​​​字符类型

STRING – 字符串序列

VARCHAR – 可变字符串序列

CHAR – 单字符字符

​​​​​​​使用举例

CREATE TABLE t1(colString STRING);CREATE TABLE t1(colVarchar VARCHAR(10));CREATE TABLE t1(colVarchar CHAR);

​​​​​​​ 复合类型

arrays  -  数组

maps  - 字典

structs  - 结构体

union  - 联合体(数据组合)

​​​​​​​使用举例

创建数据库表,以array作为数据类型

create table  person(name string,work_locations array)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t'COLLECTION ITEMS TERMINATED BY ',';

数据

biansutao beijing,shanghai,tianjin,hangzhou

linan changchu,chengdu,wuhan

创建数据库表,以map作为数据类型

create table score(name string, score map)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t'COLLECTION ITEMS TERMINATED BY ','MAP KEYS TERMINATED BY ':';

要入库的数据

biansutao '数学':80,'语文':89,'英语':95

jobs '语文':60,'数学':80,'英语':99

创建数据库表,以struct作为数据类型

CREATE TABLE test(id int,course struct)ROW FORMAT DELIMITEDFIELDS TERMINATED BY '\t'COLLECTION ITEMS TERMINATED BY ',';

数据

1 english,80

2 math,89

3 chinese,95

数据组合 (不支持组合的复杂数据类型)

create table test1(id int,a MAP)row format delimited fields terminated by '\t'collection items terminated by ','MAP KEYS TERMINATED BY ':';

1 english:80,90,70

2 math:89,78,86

3 chinese:99,100,82

​​​​​​​其它类型

BOOLEAN - TRUE/FALSE

BINARY  - 二进制类型

​​​​​​​ 使用举例

CREATE TABLE t1(colBoolean BOOLEAN);CREATE TABLE t1(colBoolean binary);

空值

NULL – 空

​​​​​​​使用举例

SELECT * FROM gdr WHERE imsi IS NULL;

二、函数

汇函数(Aggregate Functions)

返回类型

函数

说明

bigint

count(*) , count(expr), count(DISTINCT expr[, expr_., expr_.])

返回记录条数。

double

sum(col), sum(DISTINCT col)

求和

double

avg(col), avg(DISTINCT col)

求平均值

double

min(col)

返回指定列中最小值

double

max(col)

返回指定列中最大值

double

var_pop(col)

返回指定列的方差

double

var_samp(col)

返回指定列的样本方差

double

stddev_pop(col)

返回指定列的偏差

double

stddev_samp(col)

返回指定列的样本偏差

double

covar_pop(col1, col2)

两列数值协方差

double

covar_samp(col1, col2)

两列数值样本协方差

double

corr(col1, col2)

返回两列数值的相关系数

double

percentile(col, p)

返回数值区域的百分比数值点。0

上一篇:煮冻饺子秘诀大揭秘,轻松掌握方法与技巧!

下一篇:揭秘好运秘诀,如何获取好运的终极指南!