删除函数
描述
DROP FUNCTION
语句用于删除一个临时函数或用户定义的函数(UDF)。如果函数不存在,将抛出异常。
语法
DROP [ TEMPORARY ] FUNCTION [ IF EXISTS ] function_name
参数
-
function_name
指定一个现有函数的名称。函数名称可以选择性地与数据库名称一起使用。
语法:
[ database_name. ] function_name
-
TEMPORARY
应该用于删除
TEMPORARY
函数。 -
IF EXISTS
如果指定,则在函数不存在时不会抛出异常。
示例
-- 创建一个永久函数 `test_avg`
CREATE FUNCTION test_avg AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage';
-- 列出用户函数
SHOW USER FUNCTIONS;
+----------------+
| function|
+----------------+
|default.test_avg|
+----------------+
-- 创建临时函数 `test_avg`
CREATE TEMPORARY FUNCTION test_avg AS
'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage';
-- 列出用户函数
SHOW USER FUNCTIONS;
+----------------+
| function|
+----------------+
|default.test_avg|
| test_avg|
+----------------+
-- 删除永久函数
DROP FUNCTION test_avg;
-- 尝试删除不存在的永久函数
DROP FUNCTION test_avg;
Error: Error running query:
org.apache.spark.sql.catalyst.analysis.NoSuchPermanentFunctionException:
Function 'default.test_avg' not found in database 'default'; (state=,code=0)
-- 删除后列出函数,应该只列出临时函数
SHOW USER FUNCTIONS;
+--------+
|function|
+--------+
|test_avg|
+--------+
-- 删除临时函数
DROP TEMPORARY FUNCTION IF EXISTS test_avg;