删除函数

描述

DROP FUNCTION 语句用于删除一个临时函数或用户定义的函数(UDF)。如果函数不存在,将抛出异常。

语法

DROP [ TEMPORARY ] FUNCTION [ IF EXISTS ] function_name

参数

示例

-- 创建一个永久函数 `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;