DROP FUNCTION
描述
DROP FUNCTION
语句删除一个临时或用户定义的函数(UDF)。
如果函数不存在,则会抛出异常。
语法
DROP [ TEMPORARY ] FUNCTION [ IF EXISTS ] function_name
参数
function_name
表示一个存在的函数的名称。函数名称可选择使用数据库名称限定。
语法:
[ database_name. ] function_name
TEMPORARY
应当被用来删除一个临时(
TEMPORARY
)函数。IF EXISTS
如果指定,当函数不存在时不会抛出异常。
示例
-- 创建一个永久函数 `test_plus_one`
CREATE FUNCTION test_plus_one LANGUAGE SCALA AS $$(x: Int) => x + 1$$;
-- 列出用户的函数
SHOW USER FUNCTIONS;
+---------------------+
| function|
+---------------------+
|default.test_plus_one|
+---------------------+
-- 创建临时函数 `test_plus_one`
CREATE TEMPORARY FUNCTION test_plus_one LANGUAGE SCALA AS $$(x: Int) => x + 1$$;
-- 列出用户的函数
SHOW USER FUNCTIONS;
+----------------+
| function|
+----------------+
|default.test_avg|
| test_avg|
+----------------+
-- 删除永久函数
DROP FUNCTION test_avg;
-- 尝试删除不存在的永久函数
DROP FUNCTION test_avg;
Error happens in sql: drop function test_avg
org.apache.spark.sql.catalyst.analysis.NoSuchPermanentFunctionException: [ROUTINE_NOT_FOUND] The function `default`.`test_avg` cannot be found.
-- 在删除永久函数后,列出用户的函数,应该只列出临时函数
SHOW USER FUNCTIONS;
+--------+
|function|
+--------+
|test_avg|
+--------+
-- 删除临时函数
DROP TEMPORARY FUNCTION IF EXISTS test_avg;