.DROP FUNCTIONDROP FUNCTION

DROP FUNCTION语句 (UDF) 删除临时或用户定义的函数。The DROP FUNCTION statement drops a temporary or user defined function (UDF). 如果该函数不存在,将引发异常。An exception will be thrown if the function does not exist.

语法Syntax

DROP [ TEMPORARY ] FUNCTION [ IF EXISTS ] function_name

参数Parameters

  • function_namefunction_name

    指定现有函数的名称。Specifies the name of an existing function. 可以选择使用数据库名称来限定函数名称。The function name may be optionally qualified with a database name.

    语法:[ database_name. ] function_nameSyntax: [ database_name. ] function_name

  • TEMPORARYTEMPORARY

    应用于删除 TEMPORARY 函数。Should be used to delete the TEMPORARY function.

  • IF EXISTSIF EXISTS

    如果已指定,则在该函数不存在时不会引发异常。If specified, no exception is thrown when the function does not exist.

示例Examples

-- 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;