udf,udaf,udtf之间的区别
1、UDF:用户定义(普通)函数,只对单行数值产生作用;
继承UDF类,添加方法 evaluate()
/*** @function 自定义UDF统计最小值* @author John**/public class Min extends UDF {public Double evaluate(Double a, Double b) {if (a == null)a = 0.0;if (b == null)b = 0.0;if (a >= b) {return b;} else {return a;}}}
2、UDAF:User- Defined Aggregation Funcation;用户定义聚合函数,可对多行数据产生作用;等同与SQL中常用的SUM(),AVG(),也是聚合函数;
聚合函数使用:
SELECT store_name, SUM(sales)
FROM Store_Information
GROUP BY store_name
HAVING SUM(sales) > 1500
ORDER BY SUM(sales);键字HAVING总要放在GROUP BY之后,ORDER BY之前
UDAF实现有简单与通用两种方式:
a. 简单UDAF因为使用Java反射导致性能损失,而且有些特性不能使用,已经被弃用了;
b. 另一种涉及两个类:AbstractGenericUDAFResolver、GenericUDAFEvaluator;
继承UDAFResolver类,重写 getEvaluator() 方法;
继承GenericUDAFEvaluator类,生成实例给getEvaluator();
在GenericUDAFEvaluator类中,重写init()、iterate()、terminatePartial()、merge()、terminate()方
可参考:hive udaf开发入门和运行过程详解
Hive UDAF开发详解
3.UDTF:User-Defined Table-Generating Functions,用户定义表生成函数,用来解决输入一行输出多行;
继承GenericUDTF类,重写initialize(返回输出行信息:列个数,类型), process, close三方法;
可参考:hive中UDTF编写和使用
hive0.13的udtf使用例子
4、其它
删除临时函数 drop temporary function toUpper;
转载至:udf,udaf,udtf之间的区别
udf,udaf,udtf之间的区别相关推荐
- UDF UDAF UDTF 区别
UDF UDAF UDTF 区别 UDF 概念: User-Defined-Function 自定义函数 .一进一出:只对单行数据产生作用: 实际使用时,UDF函数以匿名函数的形式进行操作使用 背景: ...
- Hive 之 用户自定义函数 UDF UDAF UDTF
一 什么是UDF UDF是UserDefined Function 用户自定义函数的缩写.Hive中除了原生提供的一些函数之外,如果还不能满足我们当前需求,我们可以自定义函数. 除了UDF 之外,我们 ...
- hive的udf,udaf,udtf各自依賴兩種class(转载+分析整理)
Hive自定义函数包括三种UDF.UDAF.UDTF 名稱縮寫 特點 依賴 UDF(User-Defined-Function) 一进一出 org.apache.hadoop.hive.ql.exec ...
- UDF、UDAF、UDTF之间的区别
1.UDF:用户定义(普通)函数,只对单行数值产生作用: 继承UDF类,添加方法 evaluate() /*** @function 自定义UDF统计最小值**/public class Min ex ...
- Hive自定义UDF UDAF UDTF
Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一系列在Hadoop集群中运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法 ...
- Hive 自定义函数编写(UDF,UDAF,UDTF)
Hive自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义 UDF来方便的扩展. 当 Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数. 1. ...
- udf函数(udf udaf udtf)
UDF的定义 UDF(User-Defined Functions)即是用户定义的hive函数.hive自带的函数并不能完全满足业务需求,这时就需要我们自定义函数了 UDF的分类 UDF:one to ...
- Hive UDF GDF UDTF编写与实现
hive 自定义函数实现 UDF | GDF | UDTF 区别 UDF:一进一出(hive3 已经废除) GDF:一进一出(hive3 支持的GDF) UDTF:一进多出 业务前景 测试数据为:字符 ...
- Hive常用函数、列转行与行转列、开窗函数、UDF、UDTF
Hive函数.开窗函数.UDF.UDTF 1.系统内置函数 2.常用函数 2.1.关系运算 2.2.数值运算 2.3.条件函数 2.4.日期函数 2.5.字符串函数 2.6.Hive求WordCoun ...
最新文章
- Spring Cloud(六) 服务网关GateWay 入门
- java的finally_java的finally用法
- 动态规划-重叠区间2020.3.30
- redis常见应用场景
- Kafka解析之topic创建(2)
- 《C++ Primer》第一章的 Sales_item.h头文件源码
- 解决AutoCAD acmgd.dll ARX命令中发现异常
- centos7 yum安装maven_Linux安装tomcat、mysql 、Maven与Eclipse的整合、settings.xml
- Ajax提交与传统表单提交的区别说明
- java web listener_JavaWeb:Listener
- tensorflow自定义op_TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式
- 关于文章cisco漏洞4786
- 自行编译cups绕过错误:file /etc/rc.d/rc.local from install of systemd conflicts with file from
- c语言include iostream,求助,虚拟机上#includeiostream一直报错
- EtherCAT运动控制卡开发教程之Qt(上):开发环境配置与简单运动控制应用
- 小米5splus安装鸿蒙OS,小米5Splus 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
- 三帧差分 matlab,三帧差分法
- TLQ的安装路径不存在或不正确
- 蒟蒻的noip2015滚粗记
- Java求解N皇后问题
热门文章
- Oracle数据库精讲与疑难解析(第2版)
- Altium Designer生成Gerber文件的设置(嘉立创建议 )
- stm32串口自定义协议接收一串十六进制数据(将其中两个字节转化为十进制数据)+部分串口基础知识
- MySQL 查看表结构 显示表内容 使用语句区别
- 微信app支付和微信网页支付 java
- python:逻辑与或(and、or),按位与或异或(、|、^),逻辑短路
- 【光线追踪系列九】物体动态模糊
- union和union all的区别,hive遇到Schema of both sides of union should match处理办法
- mysql锁表查询和解锁操作
- C++指向const对象的指针和const指针