Hive系列文章
Hive表的基本操作
Hive中的集合数据类型
Hive动态分区详解
hive中orc格式表的数据导入
Java通过jdbc连接hive
通过HiveServer2访问Hive
SpringBoot连接Hive实现自助取数
hive关联hbase表
Hive udf 使用方法
Hive基于UDF进行文本分词
Hive窗口函数row number的用法
数据仓库之拉链表
hive作为一个sql查询引擎,自带了一些基本的函数,比如count(计数),sum(求和),有时候这些基本函数满足不了我们的需求,这时候就要写hive hdf(user defined funation),又叫用户自定义函数,应用与select 语句中。
哪些情况满足不了我们的需求呢,比如:
需要将字段与数据库中查询一下,做个比对;
需要对数据进行复杂处理;
等等
hive udf 用法
下面是一个判断hive表字段是否包含’100’的简单udf:
package com.js.dataclean.hive.udf.hm2
import org.apache.hadoop.hive.ql.exec.UDF;
public class IsContains100 extends UDF{
public String evaluate(String s){
if(s == null || s.length() == 0){
return "0";
}
return s.contains("100")?"1":"0";
}
}
Java
使用maven将其打包,进入hive cli,输入命令:
add jar /home/hadoop/codejar/flash_format.jar;
create temporary function isContains100 as ‘com.js.dataclean.hive.udf.hm2.IsContains100’;
SQL
创建完临时函数,即可使用这个函数了:
select isContains100(‘abc100def’) from table limit 1;
1
SQL
hive udf 创建与使用步骤