常用内置函数
HiveQL 是 Apache Hive 的查询语言,它允许用户使用类似 SQL 的语法来查询和分析存储在 Hadoop 分布式文件系统(HDFS)中的大数据。HiveQL 提供了丰富的内置函数,这些函数可以帮助我们更高效地处理数据。本文将介绍 HiveQL 中一些常用的内置函数,并通过实际案例展示它们的应用。
1. 字符串函数
字符串函数用于处理和操作字符串数据。以下是一些常用的字符串函数:
1.1 CONCAT
CONCAT
函数用于将多个字符串连接在一起。
SELECT CONCAT('Hello', ' ', 'World');
输出:
Hello World
1.2 SUBSTR
SUBSTR
函数用于从字符串中提取子字符串。
SELECT SUBSTR('Hello World', 7, 5);
输出:
World
1.3 LOWER
和 UPPER
LOWER
函数将字符串转换为小写,UPPER
函数将字符串转换为大写。
SELECT LOWER('Hello World'), UPPER('Hello World');
输出:
hello world HELLO WORLD
2. 数学函数
数学函数用于执行各种数学运算。以下是一些常用的数学函数:
2.1 ROUND
ROUND
函数用于将数字四舍五入到指定的小数位数。
SELECT ROUND(3.14159, 2);
输出:
3.14
2.2 ABS
ABS
函数返回数字的绝对值。
SELECT ABS(-10);
输出:
10
2.3 POWER
POWER
函数返回一个数的指定次幂。
SELECT POWER(2, 3);
输出:
8
3. 日期函数
日期函数用于处理日期和时间数据。以下是一些常用的日期函数:
3.1 CURRENT_DATE
CURRENT_DATE
函数返回当前日期。
SELECT CURRENT_DATE();
输出:
2023-10-01
3.2 DATE_ADD
DATE_ADD
函数用于在日期上添加指定的天数。
SELECT DATE_ADD('2023-10-01', 7);
输出:
2023-10-08
3.3 DATEDIFF
DATEDIFF
函数返回两个日期之间的天数差。
SELECT DATEDIFF('2023-10-08', '2023-10-01');
输出:
7
4. 聚合函数
聚合函数用于对一组值执行计算并返回单个值。以下是一些常用的聚合函数:
4.1 COUNT
COUNT
函数返回指定列的行数。
SELECT COUNT(*) FROM employees;
输出:
100
4.2 SUM
SUM
函数返回指定列的总和。
SELECT SUM(salary) FROM employees;
输出:
500000
4.3 AVG
AVG
函数返回指定列的平均值。
SELECT AVG(salary) FROM employees;
输出:
5000
5. 实际案例
假设我们有一个 sales
表,其中包含以下数据:
id | product | quantity | price | sale_date |
---|---|---|---|---|
1 | A | 10 | 100 | 2023-10-01 |
2 | B | 5 | 200 | 2023-10-02 |
3 | A | 8 | 100 | 2023-10-03 |
5.1 计算总销售额
我们可以使用 SUM
函数计算总销售额。
SELECT SUM(quantity * price) AS total_sales FROM sales;
输出:
3300
5.2 计算每种产品的平均销售额
我们可以使用 AVG
函数计算每种产品的平均销售额。
SELECT product, AVG(quantity * price) AS avg_sales FROM sales GROUP BY product;
输出:
A 900
B 1000
6. 总结
HiveQL 提供了丰富的内置函数,包括字符串、数学、日期和聚合函数,这些函数可以帮助我们更高效地处理和分析数据。通过本文的介绍和实际案例,你应该已经掌握了这些常用函数的基本用法。
7. 附加资源
8. 练习
- 使用
CONCAT
函数将first_name
和last_name
列连接成一个完整的名字。 - 使用
ROUND
函数将price
列的值四舍五入到两位小数。 - 使用
DATEDIFF
函数计算sale_date
和当前日期之间的天数差。
通过完成这些练习,你将进一步巩固对 HiveQL 内置函数的理解。