Hive的UDF,其实很类似Mysql之类的自定义函数
不过它需要用java来编写,而不是用传统的SQL来完成
实现一个UDF的步骤如下:
- 实现一个Java Class,继承自UDF
- 打成jar包,并加入到Hive的ClassPath中
- 生成自定义函数,执行select
- 删除刚才创建的临时函数
下面这个UDF,是我给hive的array增加的一个函数
用来判断array中是否包含某个值,hive的标准函数中并没有此功能函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package com.sohu.hadoop.hive.udf; import java.util.*; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; import org.apache.hadoop.io.BooleanWritable; import org.apache.hadoop.io.Text; public final class ArrayContains extends UDF { public BooleanWritable evaluate(ArrayList<String> arr,Text ele) { BooleanWritable rtn = new BooleanWritable(false); if (arr == null || arr.size() < 1) { return rtn; } try { String cstr = ele.toString(); for (String str : arr) { if (str.equals(cstr)) { rtn = new BooleanWritable(true); break; } } } catch (Exception e) { e.printStackTrace(); } return rtn; } } |
然后执行编译打包:
javac -classpath /opt/hadoop_client/hadoop/hadoop-0.20.2+228-core.jar:/opt/hadoop_client/hive/lib/hive-exec-0.5.0.jar src/com/sohu/hadoop/hive/udf/ArrayContains.java -d build
jar -cvf hadooop-mc-udf.jar -C build .
最后执行Hive QL查询:
hive -e "add jar /opt/ysz/udf/hadooop-mc-udf.jar;drop temporary function array_contains;create temporary function array_contains as 'com.sohu.hadoop.hive.udf.ArrayContains';select suv,channelid from pvlog_pre where array_contains(channelid,'2')"
相关推荐
而自定义用户定义函数(UDF)是 Hive 中的一个重要功能,允许用户根据自己的需求编写自定义函数,以便在 Hive 查询中使用。 如何在 Hive 中创建自定义 UDF 函数: 步骤一:编写 Java 程序 首先,您需要编写一个 ...
hive的udf函数实现
udf函数,用户自定义函数,可以直接在sql语句中计算的函数 优点: 允许实现模块化的程序设计、方便修改代码、增加函数 UDF的执行速度很快,通过缓存计划在语句重复执行时降低代码的编译开销,比存储方法的执行效率...
简单介绍了hive自定义函数的编写步骤以及使用。
NULL 博文链接:https://chengjianxiaoxue.iteye.com/blog/2235666
05.hive中如何自定义函数--json解析函数示例.mp4
hive数仓、hive SQL 、 hive自定义函数 、hive参数深入浅出
hive-udfhive自定义函数主要实现hive3种自定义函数1,udf函数,主要用于处理一对一数据处理2,udtf函数,主要用于处理一对多数据处理2,udaf函数,主要用与处理多对一数据聚合处理
udf开发–做个简单脱敏udf保留前5位,后面全部替换成*****
Spark不能使用hive自定义函数
自定义 hive udf udaf 有url解析,获取网站主域名,根据ip获取区域码,有rownum,列聚合以及一些业务实现udf。
地址转换成经纬度+两地址间距离计算+省市区位置解析(Java代码) Hive自定义函数的封装
4. 指定格式日期转UNIX时间戳函数: unix_timestamp 18 5. 日期时间转日期函数: to_date 19 6. 日期转年函数: year 19 7. 日期转月函数: month 19 8. 日期转天函数: day 19 9. 日期转小时函数: hour 20 10. 日期转...
hive自定义函数demo
* 脱敏UDF函数 * 功能:对一些敏感信息进行脱敏处理,替换方式可选择自定义替换,如'#','*'等,,如不指定脱敏符号,使用个随机字符替换 * 脱敏位置可自定义,不指定位置,会对数据进行全脱敏 * 例如身份证信息: ...
Hive自定义函数 一. UDF(user defined function) 背景 系统内置函数无法解决所有的实际业务问题,需要开发者自己编写函数实现自身的业务实现诉求。 应用场景非常多,面临的业务不同导致个性化实现很多,故udf...
hive按月份加减udf范例,http://blog.csdn.net/xiaowenK/article/details/54290354
hive-udf-collections
hive 开发UDF 使用maven工程 引发jar包缺失 hive 开发UDF 使用maven工程 引发jar包缺失
大数据的hive资源的详细代码设计以及分享,望博友相互交流