
<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <title>DROP FUNCTION - Spark 3.5.3 Documentation</title>
        

        


        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&Courier+Prime:wght@400;700&display=swap" rel="stylesheet">
        <link href="css/custom.css" rel="stylesheet">
        <script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"></script>

        <link rel="stylesheet" href="css/pygments-default.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
        <link rel="stylesheet" href="css/docsearch.css">

        
        <!-- Matomo -->
        <script>
            var _paq = window._paq = window._paq || [];
            /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
            _paq.push(["disableCookies"]);
            _paq.push(['trackPageView']);
            _paq.push(['enableLinkTracking']);
            (function() {
              var u="https://analytics.apache.org/";
              _paq.push(['setTrackerUrl', u+'matomo.php']);
              _paq.push(['setSiteId', '40']);
              var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
              g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
            })();
        </script>
        <!-- End Matomo Code -->
        

    </head>
    <body class="global">
        <!--[if lt IE 7]>
            <p class="chromeframe">You are using an outdated browser. <a href="https://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
        <![endif]-->

        <!-- This code is taken from http://twitter.github.com/bootstrap/examples/hero.html -->

        <nav class="navbar navbar-expand-lg navbar-dark p-0 px-4 fixed-top" style="background: #1d6890;" id="topbar">
            <div class="navbar-brand"><a href="index.html">
                <img src="img/spark-logo-rev.svg" width="141" height="72"/></a><span class="version">3.5.3</span>
            </div>
            <button class="navbar-toggler" type="button" data-toggle="collapse"
                    data-target="#navbarCollapse" aria-controls="navbarCollapse"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarCollapse">
                <ul class="navbar-nav me-auto">
                    <li class="nav-item"><a href="index.html" class="nav-link">Overview</a></li>

                    <li class="nav-item dropdown">
                        <a href="#" class="nav-link dropdown-toggle" id="navbarQuickStart" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Programming Guides</a>
                        <div class="dropdown-menu" aria-labelledby="navbarQuickStart">
                            <a class="dropdown-item" href="quick-start.html">Quick Start</a>
                            <a class="dropdown-item" href="rdd-programming-guide.html">RDDs, Accumulators, Broadcasts Vars</a>
                            <a class="dropdown-item" href="sql-programming-guide.html">SQL, DataFrames, and Datasets</a>
                            <a class="dropdown-item" href="structured-streaming-programming-guide.html">Structured Streaming</a>
                            <a class="dropdown-item" href="streaming-programming-guide.html">Spark Streaming (DStreams)</a>
                            <a class="dropdown-item" href="ml-guide.html">MLlib (Machine Learning)</a>
                            <a class="dropdown-item" href="graphx-programming-guide.html">GraphX (Graph Processing)</a>
                            <a class="dropdown-item" href="sparkr.html">SparkR (R on Spark)</a>
                            <a class="dropdown-item" href="api/python/getting_started/index.html">PySpark (Python on Spark)</a>
                        </div>
                    </li>

                    <li class="nav-item dropdown">
                        <a href="#" class="nav-link dropdown-toggle" id="navbarAPIDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">API Docs</a>
                        <div class="dropdown-menu" aria-labelledby="navbarAPIDocs">
                            <a class="dropdown-item" href="api/scala/org/apache/spark/index.html">Scala</a>
                            <a class="dropdown-item" href="api/java/index.html">Java</a>
                            <a class="dropdown-item" href="api/python/index.html">Python</a>
                            <a class="dropdown-item" href="api/R/index.html">R</a>
                            <a class="dropdown-item" href="api/sql/index.html">SQL, Built-in Functions</a>
                        </div>
                    </li>

                    <li class="nav-item dropdown">
                        <a href="#" class="nav-link dropdown-toggle" id="navbarDeploying" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Deploying</a>
                        <div class="dropdown-menu" aria-labelledby="navbarDeploying">
                            <a class="dropdown-item" href="cluster-overview.html">Overview</a>
                            <a class="dropdown-item" href="submitting-applications.html">Submitting Applications</a>
                            <div class="dropdown-divider"></div>
                            <a class="dropdown-item" href="spark-standalone.html">Spark Standalone</a>
                            <a class="dropdown-item" href="running-on-mesos.html">Mesos</a>
                            <a class="dropdown-item" href="running-on-yarn.html">YARN</a>
                            <a class="dropdown-item" href="running-on-kubernetes.html">Kubernetes</a>
                        </div>
                    </li>

                    <li class="nav-item dropdown">
                        <a href="#" class="nav-link dropdown-toggle" id="navbarMore" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">More</a>
                        <div class="dropdown-menu" aria-labelledby="navbarMore">
                            <a class="dropdown-item" href="configuration.html">Configuration</a>
                            <a class="dropdown-item" href="monitoring.html">Monitoring</a>
                            <a class="dropdown-item" href="tuning.html">Tuning Guide</a>
                            <a class="dropdown-item" href="job-scheduling.html">Job Scheduling</a>
                            <a class="dropdown-item" href="security.html">Security</a>
                            <a class="dropdown-item" href="hardware-provisioning.html">Hardware Provisioning</a>
                            <a class="dropdown-item" href="migration-guide.html">Migration Guide</a>
                            <div class="dropdown-divider"></div>
                            <a class="dropdown-item" href="building-spark.html">Building Spark</a>
                            <a class="dropdown-item" href="https://spark.apache.org/contributing.html">Contributing to Spark</a>
                            <a class="dropdown-item" href="https://spark.apache.org/third-party-projects.html">Third Party Projects</a>
                        </div>
                    </li>

                    <li class="nav-item">
                        <input type="text" id="docsearch-input" placeholder="Search the docs…">
                    </li>
                </ul>
                <!--<span class="navbar-text navbar-right"><span class="version-text">v3.5.3</span></span>-->
            </div>
        </nav>

        

        <div class="container">

            
                
                    <div class="left-menu-wrapper">
    <div class="left-menu">
        <h3><a href="sql-programming-guide.html">Spark SQL Guide</a></h3>
        
<ul>

    <li>
        <a href="sql-getting-started.html">
            
                Getting Started
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-data-sources.html">
            
                Data Sources
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-performance-tuning.html">
            
                Performance Tuning
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-distributed-sql-engine.html">
            
                Distributed SQL Engine
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-pyspark-pandas-with-arrow.html">
            
                PySpark Usage Guide for Pandas with Apache Arrow
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-migration-guide.html">
            
                Migration Guide
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref.html">
            
                SQL Reference
            
        </a>
    </li>
    
    
        
<ul>

    <li>
        <a href="sql-ref-ansi-compliance.html">
            
                ANSI Compliance
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-datatypes.html">
            
                Data Types
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-datetime-pattern.html">
            
                Datetime Pattern
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-number-pattern.html">
            
                Number Pattern
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-functions.html">
            
                Functions
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-identifier.html">
            
                Identifiers
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-literals.html">
            
                Literals
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-null-semantics.html">
            
                Null Semantics
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-syntax.html">
            
                SQL Syntax
            
        </a>
    </li>
    
    
        
<ul>

    <li>
        <a href="sql-ref-syntax.html#ddl-statements">
            
                Data Definition Statements
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-syntax.html#dml-statements">
            
                Data Manipulation Statements
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-syntax.html#data-retrieval-statements">
            
                Data Retrieval(Queries)
            
        </a>
    </li>
    
    

    <li>
        <a href="sql-ref-syntax.html#auxiliary-statements">
            
                Auxiliary Statements
            
        </a>
    </li>
    
    

</ul>

    

</ul>

    

    <li>
        <a href="sql-error-conditions.html">
            
                Error Conditions
            
        </a>
    </li>
    
    

</ul>

    </div>
</div>
                
                <input id="nav-trigger" class="nav-trigger" checked type="checkbox">
                <label for="nav-trigger"></label>
                <div class="content-with-sidebar mr-3" id="content">
                    
                        <h1 class="title">DROP FUNCTION</h1>
                    

                    <h3 id="description">Description</h3>

<p>The <code class="language-plaintext highlighter-rouge">DROP FUNCTION</code> statement drops a temporary or user defined function (UDF). An exception will
be thrown if the function does not exist.</p>

<h3 id="syntax">Syntax</h3>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">DROP</span> <span class="p">[</span> <span class="k">TEMPORARY</span> <span class="p">]</span> <span class="k">FUNCTION</span> <span class="p">[</span> <span class="n">IF</span> <span class="k">EXISTS</span> <span class="p">]</span> <span class="n">function_name</span>
</code></pre></div></div>

<h3 id="parameters">Parameters</h3>

<ul>
  <li>
    <p><strong>function_name</strong></p>

    <p>Specifies the name of an existing function. The function name may be
  optionally qualified with a database name.</p>

    <p><strong>Syntax:</strong> <code class="language-plaintext highlighter-rouge">[ database_name. ] function_name</code></p>
  </li>
  <li>
    <p><strong>TEMPORARY</strong></p>

    <p>Should be used to delete the <code class="language-plaintext highlighter-rouge">TEMPORARY</code> function.</p>
  </li>
  <li>
    <p><strong>IF EXISTS</strong></p>

    <p>If specified, no exception is thrown when the function does not exist.</p>
  </li>
</ul>

<h3 id="examples">Examples</h3>

<div class="language-sql highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">-- Create a permanent function `test_avg`</span>
<span class="k">CREATE</span> <span class="k">FUNCTION</span> <span class="n">test_avg</span> <span class="k">AS</span> <span class="s1">'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage'</span><span class="p">;</span>

<span class="c1">-- List user functions</span>
<span class="k">SHOW</span> <span class="k">USER</span> <span class="n">FUNCTIONS</span><span class="p">;</span>
<span class="o">+</span><span class="c1">----------------+</span>
<span class="o">|</span>        <span class="k">function</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----------------+</span>
<span class="o">|</span><span class="k">default</span><span class="p">.</span><span class="n">test_avg</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----------------+</span>

<span class="c1">-- Create Temporary function `test_avg`</span>
<span class="k">CREATE</span> <span class="k">TEMPORARY</span> <span class="k">FUNCTION</span> <span class="n">test_avg</span> <span class="k">AS</span>
    <span class="s1">'org.apache.hadoop.hive.ql.udf.generic.GenericUDAFAverage'</span><span class="p">;</span>

<span class="c1">-- List user functions</span>
<span class="k">SHOW</span> <span class="k">USER</span> <span class="n">FUNCTIONS</span><span class="p">;</span>
<span class="o">+</span><span class="c1">----------------+</span>
<span class="o">|</span>        <span class="k">function</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----------------+</span>
<span class="o">|</span><span class="k">default</span><span class="p">.</span><span class="n">test_avg</span><span class="o">|</span>
<span class="o">|</span>        <span class="n">test_avg</span><span class="o">|</span>
<span class="o">+</span><span class="c1">----------------+</span>

<span class="c1">-- Drop Permanent function</span>
<span class="k">DROP</span> <span class="k">FUNCTION</span> <span class="n">test_avg</span><span class="p">;</span>

<span class="c1">-- Try to drop Permanent function which is not present</span>
<span class="k">DROP</span> <span class="k">FUNCTION</span> <span class="n">test_avg</span><span class="p">;</span>
<span class="n">Error</span><span class="p">:</span> <span class="n">Error</span> <span class="n">running</span> <span class="n">query</span><span class="p">:</span>
<span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">spark</span><span class="p">.</span><span class="k">sql</span><span class="p">.</span><span class="n">catalyst</span><span class="p">.</span><span class="n">analysis</span><span class="p">.</span><span class="n">NoSuchPermanentFunctionException</span><span class="p">:</span>
<span class="k">Function</span> <span class="s1">'default.test_avg'</span> <span class="k">not</span> <span class="k">found</span> <span class="k">in</span> <span class="k">database</span> <span class="s1">'default'</span><span class="p">;</span> <span class="p">(</span><span class="k">state</span><span class="o">=</span><span class="p">,</span><span class="n">code</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>

<span class="c1">-- List the functions after dropping, it should list only temporary function</span>
<span class="k">SHOW</span> <span class="k">USER</span> <span class="n">FUNCTIONS</span><span class="p">;</span>
<span class="o">+</span><span class="c1">--------+</span>
<span class="o">|</span><span class="k">function</span><span class="o">|</span>
<span class="o">+</span><span class="c1">--------+</span>
<span class="o">|</span><span class="n">test_avg</span><span class="o">|</span>
<span class="o">+</span><span class="c1">--------+</span>
  
<span class="c1">-- Drop Temporary function</span>
<span class="k">DROP</span> <span class="k">TEMPORARY</span> <span class="k">FUNCTION</span> <span class="n">IF</span> <span class="k">EXISTS</span> <span class="n">test_avg</span><span class="p">;</span>
</code></pre></div></div>

<h3 id="related-statements">Related Statements</h3>

<ul>
  <li><a href="sql-ref-syntax-ddl-create-function.html">CREATE FUNCTION</a></li>
  <li><a href="sql-ref-syntax-aux-describe-function.html">DESCRIBE FUNCTION</a></li>
  <li><a href="sql-ref-syntax-aux-show-functions.html">SHOW FUNCTION</a></li>
</ul>


                </div>
            
             <!-- /container -->
        </div>

        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
        crossorigin="anonymous"></script>
        <script src="https://code.jquery.com/jquery.js"></script>

        <script src="js/vendor/anchor.min.js"></script>
        <script src="js/main.js"></script>

        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
        <script type="text/javascript">
            // DocSearch is entirely free and automated. DocSearch is built in two parts:
            // 1. a crawler which we run on our own infrastructure every 24 hours. It follows every link
            //    in your website and extract content from every page it traverses. It then pushes this
            //    content to an Algolia index.
            // 2. a JavaScript snippet to be inserted in your website that will bind this Algolia index
            //    to your search input and display its results in a dropdown UI. If you want to find more
            //    details on how works DocSearch, check the docs of DocSearch.
            docsearch({
    apiKey: 'd62f962a82bc9abb53471cb7b89da35e',
    appId: 'RAI69RXRSK',
    indexName: 'apache_spark',
    inputSelector: '#docsearch-input',
    enhancedSearchInput: true,
    algoliaOptions: {
      'facetFilters': ["version:3.5.3"]
    },
    debug: false // Set debug to true if you want to inspect the dropdown
});

        </script>

        <!-- MathJax Section -->
        <script type="text/x-mathjax-config">
            MathJax.Hub.Config({
                TeX: { equationNumbers: { autoNumber: "AMS" } }
            });
        </script>
        <script>
            // Note that we load MathJax this way to work with local file (file://), HTTP and HTTPS.
            // We could use "//cdn.mathjax...", but that won't support "file://".
            (function(d, script) {
                script = d.createElement('script');
                script.type = 'text/javascript';
                script.async = true;
                script.onload = function(){
                    MathJax.Hub.Config({
                        tex2jax: {
                            inlineMath: [ ["$", "$"], ["\\\\(","\\\\)"] ],
                            displayMath: [ ["$$","$$"], ["\\[", "\\]"] ],
                            processEscapes: true,
                            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
                        }
                    });
                };
                script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') +
                    'cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js' +
                    '?config=TeX-AMS-MML_HTMLorMML';
                d.getElementsByTagName('head')[0].appendChild(script);
            }(document));
        </script>
    </body>
</html>
