用户定义函数UDF

简介: UDF

UDF简介

UDF(user defined scalar function)

用户自定义标量函数用于对传递给它的一个或者多个参数值进行处理和计算并返回一个单一的值。
函数输入和输出是一对一的
返回一个确定类型的标量值
可以在where过滤条件中
select myudf_low(name) FROM t_test;
select * from t_test where myudf_lower(name)='odps';
select * from t_test where myudf_lower(myudf_lower(name))='odps';

UDTF(user defined table valued function)

用户自定义表值函数:解决一次函数调用输出多行多列数据场景;唯一能返回多个字段的用户自定义函数;不支持在同一个select字句中与group by,distribute by/sort by联用。
函数输入和输出是一对多的
同一个select字句不允许有其他表达式
不能嵌套使用
select myudf_vertical(name,score) as (name,score) from t_udtf;

UDAF(user defined aggregation function)

用户自定义聚合函数:将多条输入记录聚合成一条输出值后输出。
输入与输出是多对一关系
可以与SQL中的group by语句联用
select AggrAvg(score) from t_udaf;
select name,AggrAvg(score) from t_udtf group by name;

Java UDF支持的数据类型

UDF实现逻辑

UDF实现逻辑

UDTF实现逻辑

UDAF实现逻辑

实现UDF需要继承com.aliyun.odps.udf.Aggregator类
需要实现setup,newBuffer,iterate,terminate,merge,close等接口
用户实现自定义的writable buffer

UDAF实现平均值

UDF开发流程

JavaUDF的开发流程

配置Java+eclipse的环境
新建项目
新增UDF类
添加逻辑处理
准备本地测试数据
编译调试
导出Jar包
发布

目录
相关文章
|
SQL 存储 开发框架
数据库必知词汇:用户定义函数(UDF)
用户定义函数(UDF) 由一个或多个SQL语句组成的子程序,可用于封装代码以便重新使用。通常情况下不将用户限制在定义为SQL语言一部分的内置函数上,而是允许用户创建自己的用户定义函数。
2397 0
|
6月前
|
SQL 分布式计算 数据挖掘
深入理解用户定义函数(UDF)
【8月更文挑战第31天】
776 1
|
7月前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之编写UDF(用户自定义函数)时,报错:找不到主类,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
176 1
|
8月前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之建了一个python 的 UDF脚本,生成函数引用总是说类不存在,是什么导致的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
8月前
|
SQL 分布式计算 MaxCompute
MaxCompute操作报错合集之通过UDF(用户定义函数)请求外部数据库资源并遇到报错,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
350 0
|
9月前
|
SQL 存储 定位技术
数据库基础(七):用户自定义数据类型与标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除
数据库基础(七):用户自定义数据类型与标量值、内嵌表值、多语句表值函数等用户定义函数的创建、使用、删除
152 1
|
SQL 数据采集 数据挖掘
自定义 UDF、UDTF【重点】
自定义 UDF、UDTF【重点】
218 0
|
前端开发
Less预处理——继承、导入、条件表达式和函数
Less预处理——继承、导入、条件表达式和函数
356 0
|
SQL Java Maven
Hive利用宏自定义简短的函数
Hive利用宏自定义简短的函数
|
分布式计算 大数据 API
函数_UDF | 学习笔记
快速学习函数_UDF
125 0
函数_UDF | 学习笔记