学习hive时创建永久自定义函数,函数可以正常创建和使用,但是退出窗口后就会消失,show functions看不到自己所创建的函数,再次创建后会提示函数已存在,但funcs和func_rc里的相关信息还是存在
create function xxxx as 'com.a.udf.BaseFieldUDF' using jar 'hdfs://master:8020/user/hive/jars/hivefunction-1.0-SNAPSHOT.jar';
大家有没有遇到这种情况的,是我的写法有问题吗
函数名要指定库名,不指定就会在default库下, 如果你中间用 use database_name ; 切换到其它库,就会提示函数不存在了
需要指定数据库名,永久函数在hive中就是dbName.funName的形式存在。 你如果不指定数据库名,show functions不会去给你自动补上的,虽然你用的时候会给你自动补上,逻辑在源码里面写定。