删除函数
描述
DROP FUNCTION
语句用于删除临时函数或用户定义函数 (UDF)。如果函数不存在,则会抛出异常。
语法
DROP [ TEMPORARY ] FUNCTION [ IF EXISTS ] function_name
参数
-
函数名
指定现有函数的名称。函数名称可以选择使用数据库名称进行限定。
语法:
[ 数据库名称. ] 函数名
-
TEMPORARY
应用于删除
TEMPORARY
函数。 -
IF EXISTS
如果指定,则在函数不存在时不会抛出异常。
示例
-- Create a permanent function `test_avg`
CREATE FUNCTION test_avg AS 'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage';
-- List user functions
SHOW USER FUNCTIONS;
+----------------+
| function|
+----------------+
|default.test_avg|
+----------------+
-- Create Temporary function `test_avg`
CREATE TEMPORARY FUNCTION test_avg AS
'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage';
-- List user functions
SHOW USER FUNCTIONS;
+----------------+
| function|
+----------------+
|default.test_avg|
| test_avg|
+----------------+
-- Drop Permanent function
DROP FUNCTION test_avg;
-- Try to drop Permanent function which is not present
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)
-- List the functions after dropping, it should list only temporary function
SHOW USER FUNCTIONS;
+--------+
|function|
+--------+
|test_avg|
+--------+
-- Drop Temporary function
DROP TEMPORARY FUNCTION IF EXISTS test_avg;