1、自定义函数介绍:
1.1 UDF 函数(User-Defined-Function)
- 一对一的关系,输入一个值经过函数以后输出一个值;
- 在 Hive 中继承 UDF 类,方法名称为 evaluate,返回值不能为 void,其实就是实现一个方法;
-
select a,b, my_udf(a,b) as c from table1
1.2 UDAF 聚合函数(User-Defined Aggregation Function)
- 多对一的关系,输入多个值输出一个值,通常与 groupBy 联合使用;
-
select a, b, my_udaf(c) as avg_c from table1 group by a,b
1.3 UDTF 函数(User-Defined Table-Generating Functions)
- 一对多的关系,输入一个值输出多个值(一行变为多行);
- 用户自定义生成函数,有点像 flatMap;
-
-- select explode(array) col_1 from table1 select my_udtf(array) col_1 from table1
2、SparkSQL中实现UDF函数
2.1 定义UDF:
- 先导包:
from pyspark.sql.functions import *