hive中如何自定义编写UDF函数

Hive-编写UDF函数(详细教程~~~) 编写UDF函数(1)创建项目:(2)导入依赖: Hive 自带了一些函数,比如:max/min 等,但是数量有限,自己可以通过自定义 UDF 来 方便的扩展。 2)当 Hive 提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义 函数UDF:user-defined function)。 3)根据用户自定义函数类别分为以下三种: (1)UDF(User-Defined-Function) 一进一出 (2)UDAF(User-Defined Aggregation Function) 阅读详情

   有时候hive提供的内置函数无法满足我们的需求,这时候我们就可以自定义函数了,步骤如下:

1、编写UDF代码

2、打包成jar包然后上传到服务器

3、将jar包添加到hive中

4、创建临时函数与写好的class绑定

5、使用我们自定义的函数

6、销毁不需要的函数


1、编写UDF代码:

我们使用eclipse编写java代码,首先我们需要导包,将hive安装目录下lib目录下的所有jar包导入到我们的项目中

然后创建一个名为UDF的工程,然后创建myUDF的包,最后在myUDF包下创建ADDUDF.java类,在ADDUDF中编写如下代码:

import org.apache.hadoop.hive.ql.exec.UDF;
    public final class ADDUDFextends UDF {
        public Integer evaluate(Integer a, Integer b) {
                           if (null == a || null == b) {
                                           return null;
                       } return a + b;
        }
        public Double evaluate(Double a, Double b) {
                           if (a == null || b == null)
                                           return null;
                                           return a + b;
                       }
    }

改代码的作用是将传入的两个参数相加,返回他们的和

自定义的UDF类必须继承UDF类,同时必须重载evaluate方法

2、打包到我们的服务器上:

右键包名,选择export  --  java  --  jar file  -- 选择路径  然后点击finish

3、将jar包添加到hive中

在hive命令行执行以下指令:

add jar /home/user/addudf.jar;

4、创建临时函数将我们编写的类与之绑定:

在hive命令行执行以下指令:

CREATE TEMPORARY FUNCTION myfun AS 'myUDF.ADDUDF';

其中myfun是我们自定义的函数名称,myUDF.ADDUDF是我们编写的java代码的包名以及类名即  包名.类名

5、使用我们的自定义函数:

select myfun(3,5) from mytable;

执行结果:8

6、销毁我们不需要的函数:

DROP TEMPORARY FUNCTION myfun;


当外面使用hive的时候,经常会遇到使用内置函数很难完成的查询任务,这个时候我们可以考虑编写自定义函数来完成我们的任务,当然,前提是会编写java代码~







Hive自定义UDF函数详解 Hive自定义UDF函数详解一、UDF概述二、UDF种类三、如何自定义UDF四、自定义实现UDF和UDTF4.1 需求4.2 项目pom文件4.3 Hive建表测试及数据4.4 UDF函数编写4.5 UDTF函数编写 一、UDF概述 UDF全称:User-Defined Functions,即用户自定义函数,在Hive SQL编译成MapReduce任务时,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展。 二、UDF种类 UDF:操作单个数据行,产生单个数据行; UDAF:操作 阅读详情

相关推荐

【开关电源篇】开关电源——只需这三个阶段,从电源小白到维修大神

🔌 该篇为的原创文章跳转目录,小二持续更新跳转链接,尽情关注!

2301_81299416的博客 2292

Hive自定义UDF函数及使用

UDF全称:User-Defined Functions,即用户自定义函数,在Hive SQL编译成MapReduce任务时,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展。

小健的博客 5532

实验十一 ——————二层交换基础

实验内容实验网络拓扑图如上所示SW1以及SW2都创建VLAN10和VLAN20,按照上图所示,将接口添加到特定的VLAN;测试PC之间的连通性,要求相同VLAN内的PC能够相互通信要求设置两台交换机名称以及进行特权模式的密码,并允许通过Telnet方式管理交换机实验目的了解二层交换机工作原理掌握交换机基本配置命令理解VLAN的概念,掌握VLAN的配置理解trunk的概念,掌握trunk的配置实验步...

Fly_鹏程万里 1466

Hive自定义UDF函数

UDF类实现简单,只需要实现evaluate()方法就可以了,并且该方法支持重载;GenericUDF类相对于UDF类复杂了一些,但提供了更加灵活的参数检查和更丰富的参数类型,开发中根据实际情况选择。上面的注册方式为临时注册,注册的函数只在当前session有效,一般只是测试使用。如果需要永久注册,可以先将jar上传hdfs,然后通过命令永久注册。

atwdy的博客 2745

hive自定义函数UDF

概述 用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。用户可以使用Java编写自己的UDF,一旦将用户自定义函数加入到用户会话中(交互式的或者通过脚本执行的),它们就将和内置的函数一样使用,甚至可以提供联机帮助。Hive具有多种类型的用户自定义函数,每一种都会针对输入数据执行特定“一类”的转换过程。 在ETL处理中,一个处理过程可能含多个处理步骤。Hive语言具有多种方式来将...

都是浮云 9406

Hive——编写自定义UDF函数和UDTF函数

一.用户自定义函数UDF 用户自定义函数(UDF)是一个允许用户扩展HiveQL的强大的功能。用户可以使用Java编写自己的UDF,一旦将用户自定义函数加入到用户会话中(交互式的或者通过脚本执行的),它们就将和内置的函数一样使用,甚至可以提供联机帮助。Hive具有多种类型的用户自定义函数,每一种都会针对输入数据执行特定“一类”的转换过程 UDF函数特点:一行进一行出。简称,一进一出。 UDF函数解析公共字段: 编写UDF类 在pom.xml文件中添加如下内容 <dependency&

Poolweet_的博客 1100

Hive UDF自定义函数编写小例子

先写一个java类,定义函数逻辑(静态代码块模拟字典) package club.drguo.hive; import java.util.HashMap; import org.apache.hadoop.hive.ql.exec.UDF; //club.drguo.hive.PhoneNumToArea public class PhoneNumToArea extends UDF{...

感谢你的关注~~~~ღ( ´・ᴗ・` ) 287

利用eclipse编写自定义hive udf函数

eclipse编写自定义hive udf函数 在做日志分析的过程中,用到了hadoop框架中的hive,不过有些日志处理用hive中的函数处理显得力不从心,就需要用udf来进行扩展处理了 1 在eclipse中新建java project hiveudf 然后新建class ...

chimoren0700的博客 245

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

虽然hive中为我们提供了很多的内置函数,但是在实际工作中,有些情况下hive提供的内置函数无法满足我们的需求,就需要我们自己来手动编写,所以就有了自定义函数UDFUDF分为三种,分别如下一进一出(输入一行,输出一行),输入一行数据,输出一行数据;比如upper()、lowser()等。,多进一出(输入多行,输出一行),输入多行数据,聚合成一行数据,比如avg()、sum()等。,一进多出(输入一行,输出多行),比如官方文档https。............

菜菜的大数据开发の路 1305

java写hive udf_006.利用eclipse编写自定义hive udf函数

eclipse编写自定义hive udf函数在做日志分析的过程中,用到了hadoop框架中的hive,不过有些日志处理用hive中的函数处理显得力不从心,就需要用udf来进行扩展处理了1 在eclipse中新建java project hiveudf 然后新建class package(com.afan) name(UDFLower)2 添加jar library hadoop-...

weixin_36462640的博客 359

Hive自定义函数UDF)的编写及使用

前提条件: 1. 安装好hadoop2.7.3(LInux环境下) 2. 安装好Hive2.3.3,参考:Hive的安装配置 3. 安装好Maven(Windows环境下)参考:Maven安装 4. 安装好eclipse(Windows环境下)   Hive自定义函数UDF),UDF是user-defined function的简写。虽然Hive内置了许多函数供使用,但有时还是满足不...

大头皮鞋的博客 2571

hive编写自定义UDF函数

需求:hive表email_status_result中有个邮箱(receiver)字段,查询结果需要脱敏展示,表结构如下 CREATE TABLE email_status_result( receiver STRING, email_status STRING, status_count INT )COMMENT 'email_status aggregation data' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATE.

xjmfc的博客 294

HIVE 编写自定义函数UDF

一 新建JAVA项目 并添加 hive-exec-2.1.0.jar 和hadoop-common-2.7.3.jar      hive-exec-2.1.0.jarHIVE安装目录的lib目录下   hadoop-common-2.7.3.jar在hadoop的安装目录下的\share\hadoop\common 二 编一个一个类并继承UDF 并重写evaluate方法 ...

weixin_30654419的博客 332

hiveudf编写

Hive编写udf(User-defined function)需要继承UDF类或者GenericUDF类,至于UDF和GenericUDF类的区别,我们可以从GenericUDF类注释上找到答案 /** * A Generic User-defined function (GenericUDF) for the use with Hive. * * New Gener...

u012485099的博客 4899

Hive 自定义UDF函数

Hive 自定义UDF函数

hhhhhhfq的博客 1545

Hive编写和注册UDF(用户自定义函数

Hive编写和注册UDF(用户自定义函数

weixin_42326851的博客 3009

HIVE自定义UDF函数详解

Hive的内置函数不能满足需要时,可以通过编写用户自定义函数UDF(User-Defined Functions)插入自己的处理代码并在查询中使用它们。 按实现方式,UDF分如下分类: 普通的UDF,用于操作单个数据行,且产生一个数据行作为输出(一个输入对应一个输出)。 用户定义聚集函数UDAF(User-Defined Aggregating Functions),用于接受多个输入数据行,并产生一个输出数据行(多个输入对应一个输出)。 用户定义表生成函数UDTF(User-D

汝知否 2370

hiveUDF编程详解

前言:本文详解介绍UDF编程过程,以及hive中创建UDF函数的两种方式 文章目录1.什么是udf1.1UDF分类2.UDF编程示列2.1pom依赖2.2UDF编程2.3打jar3.创建UDF函数3.1创建临时的UDF函数3.2创建永久生效的UDF函数3.3编译hive支持自定义UDF函数 1.什么是udf UDF(User-Defined Functions)即是用户自定义hive函数。h...

君永夜 8286

Hive函数UDF篇)

Hive/UDF

listeningdu的博客 6622

国微SM41J256M16M DDR3产品手册

国微DDR3产品手册

上一篇: linux中合并多个文本文件以及对数据的处理
下一篇: 用最短的时间学会使用Azkaban来管理我们的任务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值