12:Hive从0到1系列学习:函数之自定义函数

46 篇文章 2 订阅

一、自定义函数

自定义函数包括三种:

①一进一出:UDF

②多进一出:UDAF—>比如max、sum、count

③一进多出:UDTF—>比如explode()

自定义函数分为三个步骤

1)编写方法的程序

(1)继承Hive提供的类

org.apache.hadoop.hive.ql.udf.generic.GenericUDF

org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;

(2)实现类中的抽象方法

2)上传jar包

3)在hive的命令行窗口创建函数

create [temporary] function [dbname.]function_name AS class_name;

二、自定义UDF函数

比如:需要自定义一个方法实现计算给定字符串的长度

实操:

①创建一个maven工程

②引入相关依赖

<dependencies>
		<dependency>
			<groupId>org.apache.hive</groupId>
			<artifactId>hive-exec</artifactId>
			<version>3.1.2</version>
		</dependency>
</dependencies>

③创建一个类继承GenericUDF类

④重写三个方法

initialize、evaluate、getDisplayString

⑤打成jar包上传到服务器/opt/module/hive/datas

⑥将jar包添加到hive的classpath

add jar /opt/module/hive/datas/myudf.jar;

⑦创建临时函数

create temporary function my_len as "com.gis.hive.MyStringLength";

三、自定义UDTF函数

比如:自定义一个UDTF实现将一个任意分割符的字符串切割成独立的单词

①实现一个类继承GenericUDTF 类

②重写三个方法

initialize、process、close

③打成jar包上传到服务器/opt/module/hive/datas

④将jar包添加到hive的classpath

add jar /opt/module/hive/data/myudtf.jar;

⑤创建临时函数

create temporary function myudtf as "com.gis.hive.MyUDTF";
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值