基于FusionInsight的Hive UDF样例
【摘要】 本文用于演示如何在FusionInsight HD中创建Hive自定义函数
一、Hive自定义函数介绍
当Hive的内置函数不能满足需要时,可以通过编写用户自定义函数UDF(User-Defined Functions)插入自己的处理代码并在查询中使用它们。
按实现方式,UDF分如下分类:
普通的UDF,用于操作单个数据行,且产生一个数据行作为输出。
用户定义聚集函数UDAF(User-Defined Aggregating Functions),用于接受多个输入数据行,并产生一个输出数据行。
用户定义表生成函数UDTF(User-Defined Table-Generating Functions),用于操作单个输入行,产生多个输出行。
按使用方法,UDF有如下分类:
临时函数,只能在当前会话使用,重启会话后需要重新创建。
永久函数,可以在多个会话中使用,不需要每次创建。
二、创建UDF工程
1、创建maven项目,示例如下
2、创建UDF类 com.huawei.bigdata.hive.example.udf.AddDoublesUDF,示例代码如下面图示
3、从hive客户端类似如下目录/opt/client/Hive/Beeline/lib 中下载UDF工程依赖的jar包hive-exec-*.jar,添加到UDFS工程中,放入lib目录,右键点击该jar包,选择 “Add as Library”
4、修改该项目的pom.xml文件,增加如下build部分
5、执行maven打包,获得如下target目录中的 udf-demo-1.0-SNAPSHOT.jar
三、部署UDF
1、将 udf-demo-1.0-SNAPSHOT.jar 上传到部署有HDFS的节点,例如上传后的路径为 /opt/udf-demo-1.0-SNAPSHOT.jar
2、上传到HDFS指定路径下,参考命令如下图,注意后续使用该UDF的用户必须有该jar包的可读权限
3、使用Hive的Beeline客户端创建UDF
通过如下命令进入beeline客户端
beeline --hiveconf hive.server2.logging.operation.level=NONE
重新进入beeline命令
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)