hive创建自定义函数

来源:互联网 发布:淘宝达人的账号简介 编辑:程序博客网 时间:2024/06/05 09:00

由于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

原创粉丝点击