Hive中的UDF实例开发

本文介绍了如何在Hive中开发UDF,以满足判断日期是否为节假日的需求。通过编写Java代码继承UDF类,并在festival_date.properties文件中配置节假日日期,然后使用Maven打包成JAR。最后,在Hive中添加JAR并创建临时函数,用于查询特定日期是否为节假日。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,背景

数据挖掘项目中,常见的需求之一就是分析节假日订单跟平时订单的区别。


2,需求

输入一个日期,判断是否是节假日。


3,UDF(user-defined function)

全称为用户自定义函数。

UDF类:实现的evaluate函数的入参和返回值只支持可序列化的数据类型,即string,int,double等等。

GenricUDF类:实现的evaluate函数可支持array,map等复杂的参数。

本例只需返回string,所以只要继承UDF类即可。

下面是实现的代码:@Description  是注释,describe function  festival即可查看该函数的详细说明

package festival;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
import java.io.InputStreamReader;
import java.text.NumberFormat;
import java.util.HashMap;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class FestivalType extends UDF {
    @Description(
            name = "festival",
            value = " input string , return festival ",
            extended = "create_date:2018/6/17
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值