hive------------创建自定义函数(function)

当Hive内置函数无法满足特定业务需求时,可以通过编写Java UDF来扩展功能。本文提供了一个创建自定义距离计算函数的例子,包括:导入所需jar包、创建继承UDF的类并实现evaluate方法、打包jar、在Hive中添加jar和创建临时函数、查看及使用函数,并展示了如何删除函数。
摘要由CSDN通过智能技术生成

由于Hive内置的函数不能满足业务需求,我们可以利用Java编写自定义函数.以下为我自己编写的一个例子:

背景:给定一个经纬度,圈出以此坐标为圆心一定距离内的基站编码

1、示例:

(1)必须导入两个jar包:

 如下图中绿色方框中的jar包,在网上可下载到

(2)创建类必须继承UDF类

(3)类必须重写evaluate方法

 方法可以重载,根据自己的需求编写自己的方法

(4)写好之后测试无误,打包成jar包,命名liujh _distance.jar
在这里插入图片描述

2、将打包好的JAR包导入主机目录下

例如添加到 /data1/aaaa/test/shell 路径下

(1)在hive中添加包

hive> add jar /data1/aaaa/test/shell /liujh_distance.jar;

Added /data1/aaaa/test/shell /liujh_distance.jar to class path

(2)在hive中创建函数

hive> create temporary function liujh_distanceas ‘udffunc.LiujhUdfFunc’;

OK

Time taken: 0.407 seconds

Liujh_distance是自己的函数名称,这个是自己定义的

udffunc.LiujhUdfFunc是函数在jar包中的路径 包名.类名 的方式

(3)查看函数

show functions like ‘%liujh_distance%’

(4)使用函数

hive> select liujh_distance(120.0001,30.001,120.110,30.110)from dual;

150.87

(5)删除函数

Drop temporary function liujh_distance

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值