UDF 全称为 User Defined Function,即用户自定义函数。MaxCompute 提供很多内建函数来满足您的计算需求,同时您还可以通过创建自定义函数来满足不同的计算需求。UDF 在使用上与普通的
内建函数 类似,Java 和 MaxCompute 的数据类型的对应关系,请参见
参数与返回值类型。
如果您使用
Maven,可以从
Maven 库 中搜索 odps-sdk-udf,从而获取不同版本的 Java SDK,相关配置信息如下所示:
UDF 分类 | 描述 |
User Defined Scalar Function(通常也称之为 UDF) | 用户自定义标量值函数(User Defined Scalar Function)。其输入与输出是一对一的关系,即读入一行数据,写出一条输出值 。 |
UDTF(User Defined Table Valued Function) | 自定义表值函数,是用来解决一次函数调用输出多行数据场景的,也是唯一能返回多个字段的自定义函数。而 UDF 只能一次计算输出一条返回值。 |
UDAF(User Defined Aggregation Function) | 自定义聚合函数,其输入与输出是多对一的关系, 即将多条输入记录聚合成一条输出值。可以与 SQL 中的 Group By 语句联用。具体语法请参见 聚合函数。 |
注意:
- UDF 广义的说法代表了自定义标量函数,自定义聚合函数及自定义表函数三种类型的自定义函数的集合。狭义来说,仅代表用户自定义标量函数。文档会经常使用这一名词,请读者根据文档上下文判断具体含义 。
- SQL 语句中有使用自定义的函数,提示内存不够。请配置 set odps.sql.udf.joiner.jvm.memory=xxxx;原因是数据量太大并且有倾斜,任务超出默认设置的内存。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。