Hive可以自定义函数,自定义函数分为两种,一种是simple,simple是通过java反射机制,所以效率上有一定的折扣,对性能有一定的损耗。另一种是generic,generic使用分布式JAVA API,类似于Hadoop的一套API
一、分类
UDF(普通):操作作用于单个数据行,产生一个数据行作为输出。(数学函数,字符串函数)
UDAF(用户定义聚集函数):接收多个输入数据行,并产生一个输出数据行。(count,max)
UDTF(用户定义表生成函数):操作作用于单个数据行,并产生多个数据行----一个表作为输出
二、添加函数到hive库
add jar /home/hadoop/workspace/hiveext/target/hiveext-0.0.1-SNAPSHOT.jar;
create temporary function strip as 'com.simple.udf.Strip';
create temporary function explodefield as 'com.simple.udtf.ExplodeField';
三、UDF
1.继承org.apache.hadoop.hive.ql.exec.UDF
2.至少实现一个evaluate方法,evaluate方法参数不限
四、UDAF
1.继承org.apache.hadoop.hive.ql.exec.UDAF
2.包含一个或多个嵌套的实现了org.apache.hadoop.hive.ql.exec的静态类
3.实现以下方法
init():负责初始化计算函数并重设它的内部状态。
iterate():每次对一个新值进行聚集计算都会调用该方法。其中iterate()接收的参数跟hive的参数对应。
terminatePartial():部分聚集结果,返回一个封装了聚集计算当前状态的对象。
merge():合并一部分聚集值和另一部分聚集值,接收一个对象作为输入,对象类型与terminatePartial()返回类型一致
terminate ():返回最终的聚集结果
五、UDTF
1.继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF。
2.实现initialize, process, close三个方法
3.UDTF首先会调用initialize方法,此方法返回UDTF的返回行的信息(返回个数,类型)。
初始化完成后,会调用process方法,对传入的参数进行处理,可以通过forword()方法把结果返回。
最后close()方法调用,对需要清理的方法进行清理。
相关推荐
Spark不能使用hive自定义函数
简单介绍了hive自定义函数的编写步骤以及使用。
hive数仓、hive SQL 、 hive自定义函数 、hive参数深入浅出
hive自定义函数demo
Hive自定义函数 一. UDF(user defined function) 背景 系统内置函数无法解决所有的实际业务问题,需要开发者自己编写函数实现自身的业务实现诉求。 应用场景非常多,面临的业务不同导致个性化实现很多,故udf...
hive的udf函数实现
udf函数,用户自定义函数,可以直接在sql语句中计算的函数 优点: 允许实现模块化的程序设计、方便修改代码、增加函数 UDF的执行速度很快,通过缓存计划在语句重复执行时降低代码的编译开销,比存储方法的执行效率...
NULL 博文链接:https://chengjianxiaoxue.iteye.com/blog/2235666
hive-udfhive自定义函数主要实现hive3种自定义函数1,udf函数,主要用于处理一对一数据处理2,udtf函数,主要用于处理一对多数据处理2,udaf函数,主要用与处理多对一数据聚合处理
udf开发–做个简单脱敏udf保留前5位,后面全部替换成*****
hive常用内置函数使用文档,类似于java的api doc文档
hive常用函数大全,日期类别,函数类别等常用函数都可有;
地址转换成经纬度+两地址间距离计算+省市区位置解析(Java代码) Hive自定义函数的封装
hive窗口系列函数
05.hive中如何自定义函数--json解析函数示例.mp4
数据蛙hive窗口函数 - 精心总结
自定义 hive udf udaf 有url解析,获取网站主域名,根据ip获取区域码,有rownum,列聚合以及一些业务实现udf。
HIVE函数大全,包括目前HIVE可用的所有函数,里面有详细说明。HIVE是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
hive-anttasks.jar hive-cli.jar hive-common.jar hive-contrib.jar hive-hbaseec.jar hive-hbase-handler.jar hive-hwi.jar hive-jdbc.jar hive-metastorejar hive-serde.jar hive-service.jar hive-shims.jar ...
Hive2.0函数大全(高清中文版)