注册临时函数
添加jar到classpath中(不论jar是否在hive的lib目录下,都需要执行此语句)
add jar /opt/module/apache-hive-2.3.7-bin/my_udf-1.0-SNAPSHOT.jar;
注册函数
create temporary function get_type as 'com.wml.TypeUdf';
查看函数
show functions;
使用函数
select *,get_type(platform) from sockinfo;
删除函数
drop temporary function get_type;
注册永久函数
如果是使用bin/hiveserver2方式,需配置conf/hive-site.xml配置文件,添加如下配置
<property>
<name>hive.aux.jars.path</name>
<value>file:///home/test/hive-2.3.7/hive_demo-1.0-SNAPSHOT.jar</value>
</property>
如果使用bin/hive方式,需配置conf/hive-env.sh,添加
export HIVE_AUX_JARS_PATH=/home/test/hive-2.3.7/lib/json-serde-1.3.8-jar-with-dependencies.jar,/home/test/hive-2.3.7/lib/app_logs_hive-1.0-SNAPSHOT.jar,/home/test/hive-2.3.7/hive_demo-1.0-SNAPSHOT.jar
/opt/module/apache-hive-2.3.7-bin/lib/my_udf-1.0-SNAPSHOT.jar
在bin/hive中,注册永久函数(函数在哪个database注册,就在哪个database中使用和删除)
create function get_type as 'com.wml.TypeUdf';
在mysql的hive数据库下FUNCS表中查看新注册的函数
mysql -uroot -proot
use hive
select * from FUNCS;
使用函数
select *,get_type(platform) from sockinfo;
删除函数
drop function get_type;