Hive自定义函数实现通过日期计算星座

本文介绍了如何在Hive中创建自定义函数,特别是UDF,用于根据出生日期计算星座。文章详细阐述了从创建Java类、打包、加载数据集、添加jar包到Hive客户端,直至执行查询的整个过程。并通过一个具体的星座计算UDF示例,展示了自定义函数的使用方法。
摘要由CSDN通过智能技术生成

    虽然Hive已经提供了很多内置的函数,比如count()、sum(),但是还是不能满足用户的需求,因此提供了自定义函数供用户自己开发函数来满足自己的需求。

一、自定义函数分类

  •     UDF(User-Defined-Function)用户自定义函数,输入一个数据然后产生一个数据; 
  •     UDAF(User-Defined Aggregation Function)用户自定义聚合函数,多个输入数据然后产生一个输出参数; 
  •     UDTF(User-Defined Table-generating Function)用户自定义表生成函数,输入一行数据生成N行数据

  接下来,我们将编写自己的UDF,实现通过一个人的出生日期,计算其所属的星座。

二、自定义函数流程

要想在Hive中完成自定义函数的操作,要按照如下的流程进行操作:

1、自定义Java类并继承org.apache.hadoop.hive.ql.exec.UDF;

2、覆写evaluate函数,evaluate函数支持重载;

3、把程序打包放到hive所在服务器;

4、进入hive客户端,添加jar包;

5、创建关联到Java类的Hive函数;

6、Hive命令行中执行查询语句:select id, 方法名(name) from 表名——得出自定义函数输出的结果。

三、自定义函数实现

1、创建java类

新建java工程,导入项目依赖包hive-exec-x.x.x.jar,创建类UDFDemo如下:

package cn.hust.book.bigdata;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;

@Description(name="UDFDemo", value="_FUNC_(date)-from the input date string"+"or separate month and day arguments,returns the sign of
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值