目录
- 背景
- 一、Hive函数分类与核心函数表
- 1. 内置函数分类
- 2. 用户自定义函数(UDF)分类
- 二、常用函数详解与实战案例
- 1. 数学函数
- 2. 字符串函数
- 3. 窗口函数
- 4. 自定义UDF实战
- 三、总结与优化建议
- 1. 核心总结
- 2. 性能优化建议
- 3. 常问问题
背景
Hive作为Hadoop生态中最常用的数据仓库工具,其强大的函数库是高效处理和分析海量数据的核心能力之一。Hive函数分为 内置函数 和 用户自定义函数(UDF),涵盖数学计算、字符串处理、日期操作、聚合统计等场景。
然而,许多开发者仅熟悉基础函数,对高阶函数(如窗口函数、条件函数)或自定义UDF的开发缺乏系统认知。本文将全面解析Hive函数分类及用法,并提供实战案例,帮助读者快速掌握函数调优技巧!
一、Hive函数分类与核心函数表
1. 内置函数分类
Hive内置函数分为以下几类:
函数类型 | 作用 | 典型函数示例 |
---|---|---|
数学函数 | 数值计算、舍入、取模等 | ROUND() , ABS() , POWER() , MOD() |
字符串函数 | 字符串截取、替换、拼接、正则匹配等 | SUBSTR() , CONCAT() , SPLIT() , REGEXP_REPLACE() |
日期函数 | 日期格式化、差值计算、时间截取等 | FROM_UNIXTIME() , DATEDIFF() , DATE_ADD() , YEAR() |
条件函数 | 逻辑判断、空值处理、多条件分支选择 | CASE WHEN , COALESCE() , IF() , NVL() |
聚合函数 | 分组统计(求和、均值、去重计数等) | SUM() , AVG() , COUNT(DISTINCT) , MAX() |
窗口函数 | 分组内排序、累计计算、滑动窗口统计 | ROW_NUMBER() , RANK() , LAG() , SUM() OVER() |
类型转换函数 | 数据类型转换(字符串转数值、日期转时间戳等) | CAST() , TO_DATE() , UNIX_TIMESTAMP() |
集合函数 | 数组/Map类型数据的操作 | EXPLODE() , MAP_KEYS() , ARRAY_CONTAINS() |
2. 用户自定义函数(UDF)分类
UDF类型 | 输入/输出 | 应用场景 |
---|---|---|
普通UDF | 单行输入 → 单行输出 | 字符串清洗、类型转换 |
UDAF(聚合函数) | 多行输入 → 单行输出 | 自定义聚合逻辑(如统计中位数) |
UDTF(表生成函数) | 单行输入 → 多行输出 | 数据展开(如JSON解析为多行 |