开发者社区> 问答> 正文

MaxCompute用户指南:SQL:UDF:UDF概述



UDF 全称为 User Defined Function,即用户自定义函数。MaxCompute 提供很多内建函数来满足您的计算需求,同时您还可以通过创建自定义函数来满足不同的计算需求。UDF 在使用上与普通的 内建函数 类似,Java 和 MaxCompute 的数据类型的对应关系,请参见 参数与返回值类型
如果您使用 Maven,可以从 Maven 库 中搜索 odps-sdk-udf,从而获取不同版本的 Java SDK,相关配置信息如下所示:

  1. <dependency>
  2.     <groupId>com.aliyun.odps</groupId>
  3.     <artifactId>odps-sdk-udf</artifactId>
  4.     <version>0.20.7-public</version>
  5. </dependency>

在 MaxCompute 中,您可以扩展的 UDF 有两种:
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;原因是数据量太大并且有倾斜,任务超出默认设置的内存。


UDF 示例


UDF 的相关示例请参见 UDF 示例

展开
收起
行者武松 2017-10-23 17:30:56 2147 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载