Hive 内置函数
阅读更多:Hive 教程
前言
在Hive中,内置函数称为UDF(User Defined Functions),是对HQL语言的扩展,能够让Hive支持更多的数据处理及分析操作。本文将介绍Hive的一些常用内置函数,例如数学函数、字符串函数、日期函数等,以及它们的用法和示例代码。
数学函数
ABS
ABS函数用于返回一个数的绝对值。示例代码如下:
SELECT ABS(-10) as result;
输出结果为:
10
ROUND
ROUND函数用于对一个数值进行四舍五入操作。示例代码如下:
SELECT ROUND(12.345, 2) as result;
输出结果为:
12.35
TRUNCATE
TRUNCATE函数可以截断一个数值,并且不进行四舍五入操作。示例代码如下:
SELECT TRUNCATE(12.345, 2) as result;
输出结果为:
12.34
EXP
EXP函数用于返回一个数的指数值。示例代码如下:
SELECT EXP(2) as result;
输出结果为:
7.3890560989306495
字符串函数
LENGTH
LENGTH函数用于返回一个字符串的长度。示例代码如下:
SELECT LENGTH('Hello World') as result;
输出结果为:
11
CONCAT
CONCAT函数用于连接两个或多个字符串。示例代码如下:
SELECT CONCAT('Hello', 'World') as result;
输出结果为:
HelloWorld
SUBSTR
SUBSTR函数用于返回字符串的子字符串。示例代码如下:
SELECT SUBSTR('Hello World', 1, 5) as result;
输出结果为:
Hello
UPPER
UPPER函数用于将字符串转换为大写字母。示例代码如下:
SELECT UPPER('Hello World') as result;
输出结果为:
HELLO WORLD
LOWER
LOWER函数用于将字符串转换为小写字母。示例代码如下:
SELECT LOWER('Hello World') as result;
输出结果为:
hello world
TRIM
TRIM函数用于删除字符串的指定字符或空格。示例代码如下:
SELECT TRIM(' Hello World ') as result;
输出结果为:
Hello World
日期函数
YEAR
YEAR函数用于返回日期的年份。示例代码如下:
SELECT YEAR('2022-01-01') as result;
输出结果为:
2022
MONTH
MONTH函数用于返回日期的月份。示例代码如下:
SELECT MONTH('2022-01-01') as result;
输出结果为:
01
DAY
DAY函数用于返回日期的天数。示例代码如下:
SELECT DAY('2022-01-01') as result;
输出结果为:
01
TO_DATE
TO_DATE函数用于将字符串转换为日期格式。示例代码如下:
SELECT TO_DATE('20220101', 'yyyyMMdd') as result;
输出结果为:
2022-01-01
控制流函数
CASE WHEN
CASE WHEN函数相当于嵌套的IF ELSE语句,可以用于对条件进行判断。示例代码如下:
SELECT
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS result
FROM student;
输出结果为:
A
B
C
D
数组函数
COLLECT_SET
COLLECT_SET函数用于返回一个集合中的唯一值。示例代码如下:
SELECT COLLECT_SET(col_name) as result FROM table_name;
ARRAY
ARRAY函数用于创建一个数组。示例代码如下:
SELECT ARRAY(1, 2, 3, 4) as result;
输出结果为:
[1, 2, 3, 4]
其他常用函数
COALESCE
COALESCE函数用于返回第一个非NULL值。示例代码如下:
SELECT COALESCE(col1, col2, col3) as result FROM table_name;
NVL
NVL函数用于判断一个值是否为NULL,如果为NULL,则返回第二个参数的值。示例代码如下:
SELECT NVL(col1, 'default value') as result FROM table_name;
IF
IF函数用于对条件进行判断,如果满足条件,则返回指定的值。示例代码如下:
SELECT IF(col1 > 10, 'YES', 'NO') as result FROM table_name;
结论
本文介绍了Hive常用的内置函数,包括数学函数、字符串函数、日期函数、控制流函数、数组函数和其他常用函数。这些函数可以帮助我们更方便地对数据进行处理和分析。在使用时,需要根据实际情况选择合适的函数,并且对函数的使用方法和语法要熟悉,以充分发挥它们的作用。