hive自定义创建临时函数和永久函数以及遇到的问题 您所在的位置:网站首页 内置函数和自定义函数的区别 hive自定义创建临时函数和永久函数以及遇到的问题

hive自定义创建临时函数和永久函数以及遇到的问题

2024-07-16 10:47| 来源: 网络整理| 查看: 265

一 创建临时函数

1、先要编写代码继承hive提供的类,并实现抽象方法后打包备用:

org.apache.hadoop.hive.ql.udf.generic.GenericUDF org.apache.hadoop.hive.ql.udf.generic.GenericUDTF;

2、在hive命令行窗口创建函数

①添加jar依赖

add jar linux_jar_path;

②创建临时函数

create temporary function [dbname.]function_name AS class_name;

注意:临时函数只在当前会话窗口有效,关闭窗口或在另一个窗口临时函数都不会存在,在当前窗口内时可以在任意数据库中调用该临时函数

③删除临时函数(关闭当前会话窗口后会自动删除)

drop temporary function [if exists] [dbname.]function_name; 二 创建永久函数

与临时函数创建过程一样,在创建永久函数时,不加temporary

create function [dbname.]function_name AS class_name;

注意:创建永久函数如果不在函数名前指定数据库,则默认是当前数据库.函数名

此时在当前会话窗口能正常查到和运行,但是当在另一个窗口调用该函数时发现调用失败

原因:

add jar linux_jar_path;

用这个添加jar依赖是临时的,只在添加的会话窗口生效,如果要在另一个窗口调用该永久函数,需要重新再该窗口再一次引用该jar包依赖,不是很方便且过于繁杂

可以在创建永久函数时:

create function [dbname.]function_name AS class_name using jar hdfs_jar_path;

using此时就是永久生效的,但是此时需要的是在hdfs上的路径,所以需要将jar包放置在hdfs存储路径下才行,不然会报错。

还可以在hive目录下创建一个目录auxlib,将jar包放进去,并重启hive,这样就可以直接创建函数使用

mkdir auxlib


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有