hive udf 使用方法

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 创建与使用步骤

更多请见:http://www.mark-to-win.com/tutorial/52296.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值