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之间的区别相关推荐

  1. UDF UDAF UDTF 区别

    UDF UDAF UDTF 区别 UDF 概念: User-Defined-Function 自定义函数 .一进一出:只对单行数据产生作用: 实际使用时,UDF函数以匿名函数的形式进行操作使用 背景: ...

  2. Hive 之 用户自定义函数 UDF UDAF UDTF

    一 什么是UDF UDF是UserDefined Function 用户自定义函数的缩写.Hive中除了原生提供的一些函数之外,如果还不能满足我们当前需求,我们可以自定义函数. 除了UDF 之外,我们 ...

  3. hive的udf,udaf,udtf各自依賴兩種class(转载+分析整理)

    Hive自定义函数包括三种UDF.UDAF.UDTF 名稱縮寫 特點 依賴 UDF(User-Defined-Function) 一进一出 org.apache.hadoop.hive.ql.exec ...

  4. UDF、UDAF、UDTF之间的区别

    1.UDF:用户定义(普通)函数,只对单行数值产生作用: 继承UDF类,添加方法 evaluate() /*** @function 自定义UDF统计最小值**/public class Min ex ...

  5. Hive自定义UDF UDAF UDTF

    Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一系列在Hadoop集群中运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法 ...

  6. Hive 自定义函数编写(UDF,UDAF,UDTF)

    Hive自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义 UDF来方便的扩展. 当 Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数. 1. ...

  7. udf函数(udf udaf udtf)

    UDF的定义 UDF(User-Defined Functions)即是用户定义的hive函数.hive自带的函数并不能完全满足业务需求,这时就需要我们自定义函数了 UDF的分类 UDF:one to ...

  8. Hive UDF GDF UDTF编写与实现

    hive 自定义函数实现 UDF | GDF | UDTF 区别 UDF:一进一出(hive3 已经废除) GDF:一进一出(hive3 支持的GDF) UDTF:一进多出 业务前景 测试数据为:字符 ...

  9. Hive常用函数、列转行与行转列、开窗函数、UDF、UDTF

    Hive函数.开窗函数.UDF.UDTF 1.系统内置函数 2.常用函数 2.1.关系运算 2.2.数值运算 2.3.条件函数 2.4.日期函数 2.5.字符串函数 2.6.Hive求WordCoun ...

最新文章

  1. Spring Cloud(六) 服务网关GateWay 入门
  2. java的finally_java的finally用法
  3. 动态规划-重叠区间2020.3.30
  4. redis常见应用场景
  5. Kafka解析之topic创建(2)
  6. 《C++ Primer》第一章的 Sales_item.h头文件源码
  7. 解决AutoCAD acmgd.dll ARX命令中发现异常
  8. centos7 yum安装maven_Linux安装tomcat、mysql 、Maven与Eclipse的整合、settings.xml
  9. Ajax提交与传统表单提交的区别说明
  10. java web listener_JavaWeb:Listener
  11. tensorflow自定义op_TensorFlow 自定义模型导出:将 .ckpt 格式转化为 .pb 格式
  12. 关于文章cisco漏洞4786
  13. 自行编译cups绕过错误:file /etc/rc.d/rc.local from install of systemd conflicts with file from
  14. c语言include iostream,求助,虚拟机上#includeiostream一直报错
  15. EtherCAT运动控制卡开发教程之Qt(上):开发环境配置与简单运动控制应用
  16. 小米5splus安装鸿蒙OS,小米5Splus 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  17. 三帧差分 matlab,三帧差分法
  18. TLQ的安装路径不存在或不正确
  19. 蒟蒻的noip2015滚粗记
  20. Java求解N皇后问题

热门文章

  1. Oracle数据库精讲与疑难解析(第2版)
  2. Altium Designer生成Gerber文件的设置(嘉立创建议 )
  3. stm32串口自定义协议接收一串十六进制数据(将其中两个字节转化为十进制数据)+部分串口基础知识
  4. MySQL 查看表结构 显示表内容 使用语句区别
  5. 微信app支付和微信网页支付 java
  6. python:逻辑与或(and、or),按位与或异或(、|、^),逻辑短路
  7. 【光线追踪系列九】物体动态模糊
  8. union和union all的区别,hive遇到Schema of both sides of union should match处理办法
  9. mysql锁表查询和解锁操作
  10. C++指向const对象的指针和const指针