用户定义函数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包
发布
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谁发明了物联网?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 1965年的越南战场,美军正深陷战争泥潭。 突然有一天,北越士兵在胡志明小道发现了一些奇怪的东西。这些东西看上去像树枝,但实际上由金属构成,里面包含一些神秘的电子元件。 这些士兵还发现,近来美军对小道的轰炸越来越频繁,而且轰炸的准确率比之前有大幅的提升,给己方带来了不小的损失。 越军意识到,这些小玩意很可能就是美军空投到胡志明小道的“眼线”。 他们没有猜错,这些小玩意确实是美军的“杰作”。 当时,战争愈演愈烈,美军伤亡人数不断攀升,达到7000人。为了扭转局面、加快战争进程,美军对北越战略要道胡志明小道进行了更大规模的轰炸和封锁。 胡志明小道 除了大量使用燃烧弹和化学毒剂之外,美方智库贾森小组提出了一种新的构想——可以设计一些能够伪装成树叶、树枝和自然物的传感器,投放到胡志明小道,通过声波和震动识别北越士兵的行动,从而进行精准轰炸。 这个行动,被美军命名为“白色冰屋(Igloo Whiter)”行动。而这些被投放过去的传感器,则被称之为“热带树”。 “热带树”传感器 除了热带树之外,美军...
- 下一篇
C# 数据操作系列 - 1. SQL基础操作
C# 数据操作系列 - 1. SQL基础操作 0.前言前篇介绍了一些数据库的基本概念和以及一些常见的数据库,让我们对数据库有了一个初步的认识。这一篇我们将继续为C#数据操作的基础填上一个空白-SQL语句。 SQL(Structured Query Language,结构化查询语言)是一种特定的编程语言,用于管理数据库系统,操作数据甚至编写一些程序。 当然,一方面因为时间问题,一方面因为各大数据库的区别(当然了,还有就是个人对SQL研究并不是那么深)所以这一篇就从SQL的基本操作入手,带领大家一起看看SQL的世界。 SQL的分类在SQL的世界里,被分割为两个部分:DML(Data Manipulation Language 数据操纵语言)、DDL(Database Definition Language 数据定义语言)。当然,也有很多其他的分法,这里参照了机械工业出版社出版的《计算机科学丛书- 数据库系统概念》。 1.1 DML数据操纵语言,用户可以凭此来访问或者操纵那些被结构化存储起来的数据。DML提供了以下功能: 对存储在数据库的数据进行检索(select)在数据库中添加新的数据(i...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS关闭SELinux安全模块
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境