|  |  | 
|  |  | 
|  | <!DOCTYPE html> | 
|  |  | 
|  |  | 
|  | <html > | 
|  |  | 
|  | <head> | 
|  | <meta charset="utf-8" /> | 
|  | <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> | 
|  |  | 
|  | <title>Development — PySpark 4.0.0-preview1 documentation</title> | 
|  |  | 
|  |  | 
|  |  | 
|  | <script data-cfasync="false"> | 
|  | document.documentElement.dataset.mode = localStorage.getItem("mode") || ""; | 
|  | document.documentElement.dataset.theme = localStorage.getItem("theme") || "light"; | 
|  | </script> | 
|  |  | 
|  | <!-- Loaded before other Sphinx assets --> | 
|  | <link href="../_static/styles/theme.css?digest=e353d410970836974a52" rel="stylesheet" /> | 
|  | <link href="../_static/styles/bootstrap.css?digest=e353d410970836974a52" rel="stylesheet" /> | 
|  | <link href="../_static/styles/pydata-sphinx-theme.css?digest=e353d410970836974a52" rel="stylesheet" /> | 
|  |  | 
|  |  | 
|  | <link href="../_static/vendor/fontawesome/6.1.2/css/all.min.css?digest=e353d410970836974a52" rel="stylesheet" /> | 
|  | <link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2" /> | 
|  | <link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2" /> | 
|  | <link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2" /> | 
|  |  | 
|  | <link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> | 
|  | <link rel="stylesheet" type="text/css" href="../_static/copybutton.css" /> | 
|  | <link rel="stylesheet" type="text/css" href="../_static/css/pyspark.css" /> | 
|  |  | 
|  | <!-- Pre-loaded scripts that we'll load fully later --> | 
|  | <link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=e353d410970836974a52" /> | 
|  | <link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=e353d410970836974a52" /> | 
|  |  | 
|  | <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> | 
|  | <script src="../_static/jquery.js"></script> | 
|  | <script src="../_static/underscore.js"></script> | 
|  | <script src="../_static/doctools.js"></script> | 
|  | <script src="../_static/clipboard.min.js"></script> | 
|  | <script src="../_static/copybutton.js"></script> | 
|  | <script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script> | 
|  | <script>DOCUMENTATION_OPTIONS.pagename = 'development/index';</script> | 
|  | <link rel="canonical" href="https://spark.apache.org/docs/latest/api/python/development/index.html" /> | 
|  | <link rel="search" title="Search" href="../search.html" /> | 
|  | <link rel="next" title="Contributing to PySpark" href="contributing.html" /> | 
|  | <link rel="prev" title="pyspark.testing.assertSchemaEqual" href="../reference/api/pyspark.testing.assertSchemaEqual.html" /> | 
|  | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
|  | <meta name="docsearch:language" content="None"> | 
|  |  | 
|  |  | 
|  | <!-- Matomo --> | 
|  | <script type="text/javascript"> | 
|  | 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 data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode=""> | 
|  |  | 
|  |  | 
|  |  | 
|  | <a class="skip-link" href="#main-content">Skip to main content</a> | 
|  |  | 
|  | <input type="checkbox" | 
|  | class="sidebar-toggle" | 
|  | name="__primary" | 
|  | id="__primary"/> | 
|  | <label class="overlay overlay-primary" for="__primary"></label> | 
|  |  | 
|  | <input type="checkbox" | 
|  | class="sidebar-toggle" | 
|  | name="__secondary" | 
|  | id="__secondary"/> | 
|  | <label class="overlay overlay-secondary" for="__secondary"></label> | 
|  |  | 
|  | <div class="search-button__wrapper"> | 
|  | <div class="search-button__overlay"></div> | 
|  | <div class="search-button__search-container"> | 
|  | <form class="bd-search d-flex align-items-center" | 
|  | action="../search.html" | 
|  | method="get"> | 
|  | <i class="fa-solid fa-magnifying-glass"></i> | 
|  | <input type="search" | 
|  | class="form-control" | 
|  | name="q" | 
|  | id="search-input" | 
|  | placeholder="Search the docs ..." | 
|  | aria-label="Search the docs ..." | 
|  | autocomplete="off" | 
|  | autocorrect="off" | 
|  | autocapitalize="off" | 
|  | spellcheck="false"/> | 
|  | <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span> | 
|  | </form></div> | 
|  | </div> | 
|  |  | 
|  | <nav class="bd-header navbar navbar-expand-lg bd-navbar"> | 
|  | <div class="bd-header__inner bd-page-width"> | 
|  | <label class="sidebar-toggle primary-toggle" for="__primary"> | 
|  | <span class="fa-solid fa-bars"></span> | 
|  | </label> | 
|  |  | 
|  | <div class="navbar-header-items__start"> | 
|  |  | 
|  | <div class="navbar-item"> | 
|  |  | 
|  |  | 
|  | <a class="navbar-brand logo" href="../index.html"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <img src="../_static/spark-logo-light.png" class="logo__image only-light" alt="Logo image"/> | 
|  | <script>document.write(`<img src="../_static/spark-logo-dark.png" class="logo__image only-dark" alt="Logo image"/>`);</script> | 
|  |  | 
|  |  | 
|  | </a></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="col-lg-9 navbar-header-items"> | 
|  |  | 
|  | <div class="me-auto navbar-header-items__center"> | 
|  |  | 
|  | <div class="navbar-item"><nav class="navbar-nav"> | 
|  | <p class="sidebar-header-items__title" | 
|  | role="heading" | 
|  | aria-level="1" | 
|  | aria-label="Site Navigation"> | 
|  | Site Navigation | 
|  | </p> | 
|  | <ul class="bd-navbar-elements navbar-nav"> | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../index.html"> | 
|  | Overview | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../getting_started/index.html"> | 
|  | Getting Started | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../user_guide/index.html"> | 
|  | User Guides | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../reference/index.html"> | 
|  | API Reference | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item current active"> | 
|  | <a class="nav-link nav-internal" href="#"> | 
|  | Development | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../migration_guide/index.html"> | 
|  | Migration Guides | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  | </ul> | 
|  | </nav></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="navbar-header-items__end"> | 
|  |  | 
|  | <div class="navbar-item navbar-persistent--container"> | 
|  |  | 
|  | <script> | 
|  | document.write(` | 
|  | <button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> | 
|  | <i class="fa-solid fa-magnifying-glass"></i> | 
|  | </button> | 
|  | `); | 
|  | </script> | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="navbar-item"><!-- | 
|  | Licensed to the Apache Software Foundation (ASF) under one or more | 
|  | contributor license agreements.  See the NOTICE file distributed with | 
|  | this work for additional information regarding copyright ownership. | 
|  | The ASF licenses this file to You under the Apache License, Version 2.0 | 
|  | (the "License"); you may not use this file except in compliance with | 
|  | the License.  You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, software | 
|  | distributed under the License is distributed on an "AS IS" BASIS, | 
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | See the License for the specific language governing permissions and | 
|  | limitations under the License. | 
|  | --> | 
|  |  | 
|  | <div id="version-button" class="dropdown"> | 
|  | <button type="button" class="btn btn-secondary btn-sm navbar-btn dropdown-toggle" id="version_switcher_button" data-toggle="dropdown"> | 
|  | 4.0.0-preview1 | 
|  | <span class="caret"></span> | 
|  | </button> | 
|  | <div id="version_switcher" class="dropdown-menu list-group-flush py-0" aria-labelledby="version_switcher_button"> | 
|  | <!-- dropdown will be populated by javascript on page load --> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  | <script type="text/javascript"> | 
|  | // Function to construct the target URL from the JSON components | 
|  | function buildURL(entry) { | 
|  | var template = "https://spark.apache.org/docs/{version}/api/python/index.html";  // supplied by jinja | 
|  | template = template.replace("{version}", entry.version); | 
|  | return template; | 
|  | } | 
|  |  | 
|  | // Function to check if corresponding page path exists in other version of docs | 
|  | // and, if so, go there instead of the homepage of the other docs version | 
|  | function checkPageExistsAndRedirect(event) { | 
|  | const currentFilePath = "development/index.html", | 
|  | otherDocsHomepage = event.target.getAttribute("href"); | 
|  | let tryUrl = `${otherDocsHomepage}${currentFilePath}`; | 
|  | $.ajax({ | 
|  | type: 'HEAD', | 
|  | url: tryUrl, | 
|  | // if the page exists, go there | 
|  | success: function() { | 
|  | location.href = tryUrl; | 
|  | } | 
|  | }).fail(function() { | 
|  | location.href = otherDocsHomepage; | 
|  | }); | 
|  | return false; | 
|  | } | 
|  |  | 
|  | // Function to populate the version switcher | 
|  | (function () { | 
|  | // get JSON config | 
|  | $.getJSON("https://spark.apache.org/static/versions.json", function(data, textStatus, jqXHR) { | 
|  | // create the nodes first (before AJAX calls) to ensure the order is | 
|  | // correct (for now, links will go to doc version homepage) | 
|  | $.each(data, function(index, entry) { | 
|  | // if no custom name specified (e.g., "latest"), use version string | 
|  | if (!("name" in entry)) { | 
|  | entry.name = entry.version; | 
|  | } | 
|  | // construct the appropriate URL, and add it to the dropdown | 
|  | entry.url = buildURL(entry); | 
|  | const node = document.createElement("a"); | 
|  | node.setAttribute("class", "list-group-item list-group-item-action py-1"); | 
|  | node.setAttribute("href", `${entry.url}`); | 
|  | node.textContent = `${entry.name}`; | 
|  | node.onclick = checkPageExistsAndRedirect; | 
|  | $("#version_switcher").append(node); | 
|  | }); | 
|  | }); | 
|  | })(); | 
|  | </script></div> | 
|  |  | 
|  | <div class="navbar-item"> | 
|  | <script> | 
|  | document.write(` | 
|  | <button class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip"> | 
|  | <span class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></span> | 
|  | <span class="theme-switch" data-mode="dark"><i class="fa-solid fa-moon"></i></span> | 
|  | <span class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></span> | 
|  | </button> | 
|  | `); | 
|  | </script></div> | 
|  |  | 
|  | <div class="navbar-item"><ul class="navbar-icon-links navbar-nav" | 
|  | aria-label="Icon Links"> | 
|  | <li class="nav-item"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <a href="https://github.com/apache/spark" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-github"></i></span> | 
|  | <label class="sr-only">GitHub</label></a> | 
|  | </li> | 
|  | <li class="nav-item"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <a href="https://pypi.org/project/pyspark" title="PyPI" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-solid fa-box"></i></span> | 
|  | <label class="sr-only">PyPI</label></a> | 
|  | </li> | 
|  | </ul></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="navbar-persistent--mobile"> | 
|  | <script> | 
|  | document.write(` | 
|  | <button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> | 
|  | <i class="fa-solid fa-magnifying-glass"></i> | 
|  | </button> | 
|  | `); | 
|  | </script> | 
|  | </div> | 
|  |  | 
|  |  | 
|  |  | 
|  | <label class="sidebar-toggle secondary-toggle" for="__secondary"> | 
|  | <span class="fa-solid fa-outdent"></span> | 
|  | </label> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </nav> | 
|  |  | 
|  | <div class="bd-container"> | 
|  | <div class="bd-container__inner bd-page-width"> | 
|  |  | 
|  | <div class="bd-sidebar-primary bd-sidebar"> | 
|  |  | 
|  |  | 
|  |  | 
|  | <div class="sidebar-header-items sidebar-primary__section"> | 
|  |  | 
|  |  | 
|  | <div class="sidebar-header-items__center"> | 
|  |  | 
|  | <div class="navbar-item"><nav class="navbar-nav"> | 
|  | <p class="sidebar-header-items__title" | 
|  | role="heading" | 
|  | aria-level="1" | 
|  | aria-label="Site Navigation"> | 
|  | Site Navigation | 
|  | </p> | 
|  | <ul class="bd-navbar-elements navbar-nav"> | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../index.html"> | 
|  | Overview | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../getting_started/index.html"> | 
|  | Getting Started | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../user_guide/index.html"> | 
|  | User Guides | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../reference/index.html"> | 
|  | API Reference | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item current active"> | 
|  | <a class="nav-link nav-internal" href="#"> | 
|  | Development | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  |  | 
|  | <li class="nav-item"> | 
|  | <a class="nav-link nav-internal" href="../migration_guide/index.html"> | 
|  | Migration Guides | 
|  | </a> | 
|  | </li> | 
|  |  | 
|  | </ul> | 
|  | </nav></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  |  | 
|  | <div class="sidebar-header-items__end"> | 
|  |  | 
|  | <div class="navbar-item"><!-- | 
|  | Licensed to the Apache Software Foundation (ASF) under one or more | 
|  | contributor license agreements.  See the NOTICE file distributed with | 
|  | this work for additional information regarding copyright ownership. | 
|  | The ASF licenses this file to You under the Apache License, Version 2.0 | 
|  | (the "License"); you may not use this file except in compliance with | 
|  | the License.  You may obtain a copy of the License at | 
|  |  | 
|  | http://www.apache.org/licenses/LICENSE-2.0 | 
|  |  | 
|  | Unless required by applicable law or agreed to in writing, software | 
|  | distributed under the License is distributed on an "AS IS" BASIS, | 
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | See the License for the specific language governing permissions and | 
|  | limitations under the License. | 
|  | --> | 
|  |  | 
|  | <div id="version-button" class="dropdown"> | 
|  | <button type="button" class="btn btn-secondary btn-sm navbar-btn dropdown-toggle" id="version_switcher_button" data-toggle="dropdown"> | 
|  | 4.0.0-preview1 | 
|  | <span class="caret"></span> | 
|  | </button> | 
|  | <div id="version_switcher" class="dropdown-menu list-group-flush py-0" aria-labelledby="version_switcher_button"> | 
|  | <!-- dropdown will be populated by javascript on page load --> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  | <script type="text/javascript"> | 
|  | // Function to construct the target URL from the JSON components | 
|  | function buildURL(entry) { | 
|  | var template = "https://spark.apache.org/docs/{version}/api/python/index.html";  // supplied by jinja | 
|  | template = template.replace("{version}", entry.version); | 
|  | return template; | 
|  | } | 
|  |  | 
|  | // Function to check if corresponding page path exists in other version of docs | 
|  | // and, if so, go there instead of the homepage of the other docs version | 
|  | function checkPageExistsAndRedirect(event) { | 
|  | const currentFilePath = "development/index.html", | 
|  | otherDocsHomepage = event.target.getAttribute("href"); | 
|  | let tryUrl = `${otherDocsHomepage}${currentFilePath}`; | 
|  | $.ajax({ | 
|  | type: 'HEAD', | 
|  | url: tryUrl, | 
|  | // if the page exists, go there | 
|  | success: function() { | 
|  | location.href = tryUrl; | 
|  | } | 
|  | }).fail(function() { | 
|  | location.href = otherDocsHomepage; | 
|  | }); | 
|  | return false; | 
|  | } | 
|  |  | 
|  | // Function to populate the version switcher | 
|  | (function () { | 
|  | // get JSON config | 
|  | $.getJSON("https://spark.apache.org/static/versions.json", function(data, textStatus, jqXHR) { | 
|  | // create the nodes first (before AJAX calls) to ensure the order is | 
|  | // correct (for now, links will go to doc version homepage) | 
|  | $.each(data, function(index, entry) { | 
|  | // if no custom name specified (e.g., "latest"), use version string | 
|  | if (!("name" in entry)) { | 
|  | entry.name = entry.version; | 
|  | } | 
|  | // construct the appropriate URL, and add it to the dropdown | 
|  | entry.url = buildURL(entry); | 
|  | const node = document.createElement("a"); | 
|  | node.setAttribute("class", "list-group-item list-group-item-action py-1"); | 
|  | node.setAttribute("href", `${entry.url}`); | 
|  | node.textContent = `${entry.name}`; | 
|  | node.onclick = checkPageExistsAndRedirect; | 
|  | $("#version_switcher").append(node); | 
|  | }); | 
|  | }); | 
|  | })(); | 
|  | </script></div> | 
|  |  | 
|  | <div class="navbar-item"> | 
|  | <script> | 
|  | document.write(` | 
|  | <button class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip"> | 
|  | <span class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></span> | 
|  | <span class="theme-switch" data-mode="dark"><i class="fa-solid fa-moon"></i></span> | 
|  | <span class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></span> | 
|  | </button> | 
|  | `); | 
|  | </script></div> | 
|  |  | 
|  | <div class="navbar-item"><ul class="navbar-icon-links navbar-nav" | 
|  | aria-label="Icon Links"> | 
|  | <li class="nav-item"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <a href="https://github.com/apache/spark" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-github"></i></span> | 
|  | <label class="sr-only">GitHub</label></a> | 
|  | </li> | 
|  | <li class="nav-item"> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <a href="https://pypi.org/project/pyspark" title="PyPI" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-solid fa-box"></i></span> | 
|  | <label class="sr-only">PyPI</label></a> | 
|  | </li> | 
|  | </ul></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | <div class="sidebar-primary-items__start sidebar-primary__section"> | 
|  | <div class="sidebar-primary-item"><nav class="bd-docs-nav bd-links" | 
|  | aria-label="Section Navigation"> | 
|  | <p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p> | 
|  | <div class="bd-toc-item navbar-nav"><ul class="nav bd-sidenav"> | 
|  | <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to PySpark</a></li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="testing.html">Testing PySpark</a></li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="debugging.html">Debugging PySpark</a></li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="setting_ide.html">Setting up IDEs</a></li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="errors.html">Error classes in PySpark</a></li> | 
|  | </ul> | 
|  | </div> | 
|  | </nav></div> | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="sidebar-primary-items__end sidebar-primary__section"> | 
|  | </div> | 
|  |  | 
|  | <div id="rtd-footer-container"></div> | 
|  |  | 
|  |  | 
|  | </div> | 
|  |  | 
|  | <main id="main-content" class="bd-main"> | 
|  |  | 
|  |  | 
|  | <div class="bd-content"> | 
|  | <div class="bd-article-container"> | 
|  |  | 
|  | <div class="bd-header-article"> | 
|  | <div class="header-article-items header-article__inner"> | 
|  |  | 
|  | <div class="header-article-items__start"> | 
|  |  | 
|  | <div class="header-article-item"> | 
|  |  | 
|  |  | 
|  |  | 
|  | <nav aria-label="Breadcrumbs"> | 
|  | <ul class="bd-breadcrumbs" role="navigation" aria-label="Breadcrumb"> | 
|  |  | 
|  | <li class="breadcrumb-item breadcrumb-home"> | 
|  | <a href="../index.html" class="nav-link" aria-label="Home"> | 
|  | <i class="fa-solid fa-home"></i> | 
|  | </a> | 
|  | </li> | 
|  | <li class="breadcrumb-item active" aria-current="page">Development</li> | 
|  | </ul> | 
|  | </nav> | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | <div id="searchbox"></div> | 
|  | <article class="bd-article" role="main"> | 
|  |  | 
|  | <section id="development"> | 
|  | <h1>Development<a class="headerlink" href="#development" title="Permalink to this headline">#</a></h1> | 
|  | <div class="toctree-wrapper compound"> | 
|  | <ul> | 
|  | <li class="toctree-l1"><a class="reference internal" href="contributing.html">Contributing to PySpark</a><ul> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#contributing-by-testing-releases">Contributing by Testing Releases</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#contributing-documentation-changes">Contributing Documentation Changes</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#preparing-to-contribute-code-changes">Preparing to Contribute Code Changes</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#environment-setup">Environment Setup</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#contributing-and-maintaining-type-hints">Contributing and Maintaining Type Hints</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#code-and-docstring-guide">Code and Docstring Guide</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="contributing.html#contributing-error-and-exception">Contributing Error and Exception</a></li> | 
|  | </ul> | 
|  | </li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="testing.html">Testing PySpark</a><ul> | 
|  | <li class="toctree-l2"><a class="reference internal" href="testing.html#running-individual-pyspark-tests">Running Individual PySpark Tests</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="testing.html#running-tests-using-github-actions">Running Tests using GitHub Actions</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="testing.html#running-tests-for-spark-connect">Running Tests for Spark Connect</a></li> | 
|  | </ul> | 
|  | </li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="debugging.html">Debugging PySpark</a><ul> | 
|  | <li class="toctree-l2"><a class="reference internal" href="debugging.html#remote-debugging-pycharm-professional">Remote Debugging (PyCharm Professional)</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="debugging.html#checking-resource-usage-top-and-ps">Checking Resource Usage (<code class="docutils literal notranslate"><span class="pre">top</span></code> and <code class="docutils literal notranslate"><span class="pre">ps</span></code>)</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="debugging.html#profiling-memory-usage-memory-profiler">Profiling Memory Usage (Memory Profiler)</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="debugging.html#identifying-hot-loops-python-profilers">Identifying Hot Loops (Python Profilers)</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="debugging.html#common-exceptions-errors">Common Exceptions / Errors</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="debugging.html#stack-traces">Stack Traces</a></li> | 
|  | </ul> | 
|  | </li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="setting_ide.html">Setting up IDEs</a><ul> | 
|  | <li class="toctree-l2"><a class="reference internal" href="setting_ide.html#pycharm">PyCharm</a></li> | 
|  | </ul> | 
|  | </li> | 
|  | <li class="toctree-l1"><a class="reference internal" href="errors.html">Error classes in PySpark</a><ul> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#application-name-not-set">APPLICATION_NAME_NOT_SET</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#argument-required">ARGUMENT_REQUIRED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#arrow-legacy-ipc-format">ARROW_LEGACY_IPC_FORMAT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#attribute-not-callable">ATTRIBUTE_NOT_CALLABLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#attribute-not-supported">ATTRIBUTE_NOT_SUPPORTED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#axis-length-mismatch">AXIS_LENGTH_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#broadcast-variable-not-loaded">BROADCAST_VARIABLE_NOT_LOADED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#call-before-initialize">CALL_BEFORE_INITIALIZE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-accept-object-in-type">CANNOT_ACCEPT_OBJECT_IN_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-access-to-dunder">CANNOT_ACCESS_TO_DUNDER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-apply-in-for-column">CANNOT_APPLY_IN_FOR_COLUMN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-be-empty">CANNOT_BE_EMPTY</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-be-none">CANNOT_BE_NONE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-configure-spark-connect">CANNOT_CONFIGURE_SPARK_CONNECT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-configure-spark-connect-master">CANNOT_CONFIGURE_SPARK_CONNECT_MASTER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-convert-column-into-bool">CANNOT_CONVERT_COLUMN_INTO_BOOL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-convert-type">CANNOT_CONVERT_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-determine-type">CANNOT_DETERMINE_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-get-batch-id">CANNOT_GET_BATCH_ID</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-infer-array-type">CANNOT_INFER_ARRAY_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-infer-empty-schema">CANNOT_INFER_EMPTY_SCHEMA</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-infer-schema-for-type">CANNOT_INFER_SCHEMA_FOR_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-infer-type-for-field">CANNOT_INFER_TYPE_FOR_FIELD</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-merge-type">CANNOT_MERGE_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-open-socket">CANNOT_OPEN_SOCKET</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-parse-datatype">CANNOT_PARSE_DATATYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-provide-metadata">CANNOT_PROVIDE_METADATA</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-set-together">CANNOT_SET_TOGETHER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-specify-return-type-for-udf">CANNOT_SPECIFY_RETURN_TYPE_FOR_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#cannot-without">CANNOT_WITHOUT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#collation-invalid-provider">COLLATION_INVALID_PROVIDER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#column-in-list">COLUMN_IN_LIST</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#connect-url-already-defined">CONNECT_URL_ALREADY_DEFINED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#connect-url-not-set">CONNECT_URL_NOT_SET</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#context-only-valid-on-driver">CONTEXT_ONLY_VALID_ON_DRIVER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#context-unavailable-for-remote-client">CONTEXT_UNAVAILABLE_FOR_REMOTE_CLIENT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#data-source-create-error">DATA_SOURCE_CREATE_ERROR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#data-source-invalid-return-type">DATA_SOURCE_INVALID_RETURN_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#data-source-return-schema-mismatch">DATA_SOURCE_RETURN_SCHEMA_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#data-source-type-mismatch">DATA_SOURCE_TYPE_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#different-pandas-dataframe">DIFFERENT_PANDAS_DATAFRAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#different-pandas-index">DIFFERENT_PANDAS_INDEX</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#different-pandas-multiindex">DIFFERENT_PANDAS_MULTIINDEX</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#different-pandas-series">DIFFERENT_PANDAS_SERIES</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#different-rows">DIFFERENT_ROWS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#different-schema">DIFFERENT_SCHEMA</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#disallowed-type-for-container">DISALLOWED_TYPE_FOR_CONTAINER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#duplicated-field-name-in-arrow-struct">DUPLICATED_FIELD_NAME_IN_ARROW_STRUCT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#error-occurred-while-calling">ERROR_OCCURRED_WHILE_CALLING</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-data-type-unacceptable">FIELD_DATA_TYPE_UNACCEPTABLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-data-type-unacceptable-with-name">FIELD_DATA_TYPE_UNACCEPTABLE_WITH_NAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-not-nullable">FIELD_NOT_NULLABLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-not-nullable-with-name">FIELD_NOT_NULLABLE_WITH_NAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-struct-length-mismatch">FIELD_STRUCT_LENGTH_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-struct-length-mismatch-with-name">FIELD_STRUCT_LENGTH_MISMATCH_WITH_NAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-type-mismatch">FIELD_TYPE_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#field-type-mismatch-with-name">FIELD_TYPE_MISMATCH_WITH_NAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#higher-order-function-should-return-column">HIGHER_ORDER_FUNCTION_SHOULD_RETURN_COLUMN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#incorrect-conf-for-profile">INCORRECT_CONF_FOR_PROFILE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#index-not-positive">INDEX_NOT_POSITIVE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#index-out-of-range">INDEX_OUT_OF_RANGE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-arrow-udtf-return-type">INVALID_ARROW_UDTF_RETURN_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-broadcast-operation">INVALID_BROADCAST_OPERATION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-call-on-unresolved-object">INVALID_CALL_ON_UNRESOLVED_OBJECT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-connect-url">INVALID_CONNECT_URL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-interval-casting">INVALID_INTERVAL_CASTING</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-item-for-container">INVALID_ITEM_FOR_CONTAINER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-json-data-type-for-collations">INVALID_JSON_DATA_TYPE_FOR_COLLATIONS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-multiple-argument-conditions">INVALID_MULTIPLE_ARGUMENT_CONDITIONS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-ndarray-dimension">INVALID_NDARRAY_DIMENSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-number-of-dataframes-in-group">INVALID_NUMBER_OF_DATAFRAMES_IN_GROUP</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-pandas-udf">INVALID_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-pandas-udf-type">INVALID_PANDAS_UDF_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-return-type-for-arrow-udf">INVALID_RETURN_TYPE_FOR_ARROW_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-return-type-for-pandas-udf">INVALID_RETURN_TYPE_FOR_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-session-uuid-id">INVALID_SESSION_UUID_ID</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-timeout-timestamp">INVALID_TIMEOUT_TIMESTAMP</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-type">INVALID_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-typename-call">INVALID_TYPENAME_CALL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-type-df-equality-arg">INVALID_TYPE_DF_EQUALITY_ARG</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-udf-eval-type">INVALID_UDF_EVAL_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-udtf-both-return-type-and-analyze">INVALID_UDTF_BOTH_RETURN_TYPE_AND_ANALYZE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-udtf-eval-type">INVALID_UDTF_EVAL_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-udtf-handler-type">INVALID_UDTF_HANDLER_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-udtf-no-eval">INVALID_UDTF_NO_EVAL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-udtf-return-type">INVALID_UDTF_RETURN_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-when-usage">INVALID_WHEN_USAGE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#invalid-window-bound-type">INVALID_WINDOW_BOUND_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#java-gateway-exited">JAVA_GATEWAY_EXITED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#jvm-attribute-not-supported">JVM_ATTRIBUTE_NOT_SUPPORTED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#key-not-exists">KEY_NOT_EXISTS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#key-value-pair-required">KEY_VALUE_PAIR_REQUIRED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#length-should-be-the-same">LENGTH_SHOULD_BE_THE_SAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#malformed-variant">MALFORMED_VARIANT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#master-url-not-set">MASTER_URL_NOT_SET</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#missing-library-for-profiler">MISSING_LIBRARY_FOR_PROFILER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#missing-valid-plan">MISSING_VALID_PLAN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#mixed-type-replacement">MIXED_TYPE_REPLACEMENT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#negative-value">NEGATIVE_VALUE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool">NOT_BOOL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-dict-or-float-or-int-or-list-or-str-or-tuple">NOT_BOOL_OR_DICT_OR_FLOAT_OR_INT_OR_LIST_OR_STR_OR_TUPLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-dict-or-float-or-int-or-str">NOT_BOOL_OR_DICT_OR_FLOAT_OR_INT_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-float-or-int">NOT_BOOL_OR_FLOAT_OR_INT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-float-or-int-or-list-or-none-or-str-or-tuple">NOT_BOOL_OR_FLOAT_OR_INT_OR_LIST_OR_NONE_OR_STR_OR_TUPLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-float-or-int-or-str">NOT_BOOL_OR_FLOAT_OR_INT_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-list">NOT_BOOL_OR_LIST</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-bool-or-str">NOT_BOOL_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-callable">NOT_CALLABLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column">NOT_COLUMN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-datatype-or-str">NOT_COLUMN_OR_DATATYPE_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-float-or-int-or-list-or-str">NOT_COLUMN_OR_FLOAT_OR_INT_OR_LIST_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-int">NOT_COLUMN_OR_INT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-int-or-list-or-str-or-tuple">NOT_COLUMN_OR_INT_OR_LIST_OR_STR_OR_TUPLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-int-or-str">NOT_COLUMN_OR_INT_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-list-or-str">NOT_COLUMN_OR_LIST_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-str">NOT_COLUMN_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-column-or-str-or-struct">NOT_COLUMN_OR_STR_OR_STRUCT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-dataframe">NOT_DATAFRAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-datatype-or-str">NOT_DATATYPE_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-dict">NOT_DICT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-expression">NOT_EXPRESSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-float-or-int">NOT_FLOAT_OR_INT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-float-or-int-or-list-or-str">NOT_FLOAT_OR_INT_OR_LIST_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-implemented">NOT_IMPLEMENTED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-int">NOT_INT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-int-or-slice-or-str">NOT_INT_OR_SLICE_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-in-barrier-stage">NOT_IN_BARRIER_STAGE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-iterable">NOT_ITERABLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list">NOT_LIST</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-of-column">NOT_LIST_OF_COLUMN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-of-column-or-str">NOT_LIST_OF_COLUMN_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-of-float-or-int">NOT_LIST_OF_FLOAT_OR_INT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-of-str">NOT_LIST_OF_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-or-none-or-struct">NOT_LIST_OR_NONE_OR_STRUCT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-or-str-or-tuple">NOT_LIST_OR_STR_OR_TUPLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-list-or-tuple">NOT_LIST_OR_TUPLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-numeric-columns">NOT_NUMERIC_COLUMNS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-observation-or-str">NOT_OBSERVATION_OR_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-same-type">NOT_SAME_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-str">NOT_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-struct">NOT_STRUCT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-str-or-list-of-rdd">NOT_STR_OR_LIST_OF_RDD</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-str-or-struct">NOT_STR_OR_STRUCT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#not-windowspec">NOT_WINDOWSPEC</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#no-active-exception">NO_ACTIVE_EXCEPTION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#no-active-or-default-session">NO_ACTIVE_OR_DEFAULT_SESSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#no-active-session">NO_ACTIVE_SESSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#no-observe-before-get">NO_OBSERVE_BEFORE_GET</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#no-schema-and-driver-default-scheme">NO_SCHEMA_AND_DRIVER_DEFAULT_SCHEME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#only-allowed-for-single-column">ONLY_ALLOWED_FOR_SINGLE_COLUMN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#only-allow-single-trigger">ONLY_ALLOW_SINGLE_TRIGGER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#only-supported-with-spark-connect">ONLY_SUPPORTED_WITH_SPARK_CONNECT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#package-not-installed">PACKAGE_NOT_INSTALLED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#pipe-function-exited">PIPE_FUNCTION_EXITED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#python-hash-seed-not-set">PYTHON_HASH_SEED_NOT_SET</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#python-streaming-data-source-runtime-error">PYTHON_STREAMING_DATA_SOURCE_RUNTIME_ERROR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#python-version-mismatch">PYTHON_VERSION_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#rdd-transform-only-valid-on-driver">RDD_TRANSFORM_ONLY_VALID_ON_DRIVER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#read-only">READ_ONLY</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#response-already-received">RESPONSE_ALREADY_RECEIVED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#result-columns-mismatch-for-arrow-udf">RESULT_COLUMNS_MISMATCH_FOR_ARROW_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#result-columns-mismatch-for-pandas-udf">RESULT_COLUMNS_MISMATCH_FOR_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#result-length-mismatch-for-pandas-udf">RESULT_LENGTH_MISMATCH_FOR_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#result-length-mismatch-for-scalar-iter-pandas-udf">RESULT_LENGTH_MISMATCH_FOR_SCALAR_ITER_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#result-type-mismatch-for-arrow-udf">RESULT_TYPE_MISMATCH_FOR_ARROW_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#retries-exceeded">RETRIES_EXCEEDED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#reuse-observation">REUSE_OBSERVATION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#schema-mismatch-for-pandas-udf">SCHEMA_MISMATCH_FOR_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#session-already-exist">SESSION_ALREADY_EXIST</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#session-need-conn-str-or-builder">SESSION_NEED_CONN_STR_OR_BUILDER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#session-not-same">SESSION_NOT_SAME</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#session-or-context-exists">SESSION_OR_CONTEXT_EXISTS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#session-or-context-not-exists">SESSION_OR_CONTEXT_NOT_EXISTS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#slice-with-step">SLICE_WITH_STEP</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#state-not-exists">STATE_NOT_EXISTS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#stop-iteration-occurred">STOP_ITERATION_OCCURRED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#stop-iteration-occurred-from-scalar-iter-pandas-udf">STOP_ITERATION_OCCURRED_FROM_SCALAR_ITER_PANDAS_UDF</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#streaming-connect-serialization-error">STREAMING_CONNECT_SERIALIZATION_ERROR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#test-class-not-compiled">TEST_CLASS_NOT_COMPILED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#too-many-values">TOO_MANY_VALUES</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#type-hint-should-be-specified">TYPE_HINT_SHOULD_BE_SPECIFIED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udf-return-type">UDF_RETURN_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-arrow-type-cast-error">UDTF_ARROW_TYPE_CAST_ERROR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-constructor-invalid-implements-analyze-method">UDTF_CONSTRUCTOR_INVALID_IMPLEMENTS_ANALYZE_METHOD</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-constructor-invalid-no-analyze-method">UDTF_CONSTRUCTOR_INVALID_NO_ANALYZE_METHOD</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-eval-method-arguments-do-not-match-signature">UDTF_EVAL_METHOD_ARGUMENTS_DO_NOT_MATCH_SIGNATURE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-exec-error">UDTF_EXEC_ERROR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-invalid-output-row-type">UDTF_INVALID_OUTPUT_ROW_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-return-not-iterable">UDTF_RETURN_NOT_ITERABLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-return-schema-mismatch">UDTF_RETURN_SCHEMA_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-return-type-mismatch">UDTF_RETURN_TYPE_MISMATCH</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#udtf-serialization-error">UDTF_SERIALIZATION_ERROR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unexpected-response-from-server">UNEXPECTED_RESPONSE_FROM_SERVER</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unexpected-tuple-with-struct">UNEXPECTED_TUPLE_WITH_STRUCT</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unknown-explain-mode">UNKNOWN_EXPLAIN_MODE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unknown-interrupt-type">UNKNOWN_INTERRUPT_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unknown-response">UNKNOWN_RESPONSE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unknown-value-for">UNKNOWN_VALUE_FOR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-data-type">UNSUPPORTED_DATA_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-data-type-for-arrow">UNSUPPORTED_DATA_TYPE_FOR_ARROW</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-data-type-for-arrow-conversion">UNSUPPORTED_DATA_TYPE_FOR_ARROW_CONVERSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-data-type-for-arrow-version">UNSUPPORTED_DATA_TYPE_FOR_ARROW_VERSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-join-type">UNSUPPORTED_JOIN_TYPE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-literal">UNSUPPORTED_LITERAL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-local-connection-string">UNSUPPORTED_LOCAL_CONNECTION_STRING</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-numpy-array-scalar">UNSUPPORTED_NUMPY_ARRAY_SCALAR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-operation">UNSUPPORTED_OPERATION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-package-version">UNSUPPORTED_PACKAGE_VERSION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-param-type-for-higher-order-function">UNSUPPORTED_PARAM_TYPE_FOR_HIGHER_ORDER_FUNCTION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-signature">UNSUPPORTED_SIGNATURE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#unsupported-with-arrow-optimization">UNSUPPORTED_WITH_ARROW_OPTIMIZATION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-allowed">VALUE_ALLOWED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-accessible">VALUE_NOT_ACCESSIBLE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-allowed">VALUE_NOT_ALLOWED</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-any-or-all">VALUE_NOT_ANY_OR_ALL</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-between">VALUE_NOT_BETWEEN</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-non-empty-str">VALUE_NOT_NON_EMPTY_STR</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-pearson">VALUE_NOT_PEARSON</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-plain-column-reference">VALUE_NOT_PLAIN_COLUMN_REFERENCE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-positive">VALUE_NOT_POSITIVE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-not-true">VALUE_NOT_TRUE</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#value-out-of-bounds">VALUE_OUT_OF_BOUNDS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#wrong-num-args-for-higher-order-function">WRONG_NUM_ARGS_FOR_HIGHER_ORDER_FUNCTION</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#wrong-num-columns">WRONG_NUM_COLUMNS</a></li> | 
|  | <li class="toctree-l2"><a class="reference internal" href="errors.html#zero-index">ZERO_INDEX</a></li> | 
|  | </ul> | 
|  | </li> | 
|  | </ul> | 
|  | </div> | 
|  | </section> | 
|  |  | 
|  |  | 
|  | </article> | 
|  |  | 
|  |  | 
|  |  | 
|  | <footer class="bd-footer-article"> | 
|  |  | 
|  | <div class="footer-article-items footer-article__inner"> | 
|  |  | 
|  | <div class="footer-article-item"><!-- Previous / next buttons --> | 
|  | <div class="prev-next-area"> | 
|  | <a class="left-prev" | 
|  | href="../reference/api/pyspark.testing.assertSchemaEqual.html" | 
|  | title="previous page"> | 
|  | <i class="fa-solid fa-angle-left"></i> | 
|  | <div class="prev-next-info"> | 
|  | <p class="prev-next-subtitle">previous</p> | 
|  | <p class="prev-next-title">pyspark.testing.assertSchemaEqual</p> | 
|  | </div> | 
|  | </a> | 
|  | <a class="right-next" | 
|  | href="contributing.html" | 
|  | title="next page"> | 
|  | <div class="prev-next-info"> | 
|  | <p class="prev-next-subtitle">next</p> | 
|  | <p class="prev-next-title">Contributing to PySpark</p> | 
|  | </div> | 
|  | <i class="fa-solid fa-angle-right"></i> | 
|  | </a> | 
|  | </div></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </footer> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  |  | 
|  | <div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner"> | 
|  |  | 
|  | <div class="sidebar-secondary-item"> | 
|  | <div class="tocsection sourcelink"> | 
|  | <a href="../_sources/development/index.rst.txt"> | 
|  | <i class="fa-solid fa-file-lines"></i> Show Source | 
|  | </a> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  | </div></div> | 
|  |  | 
|  |  | 
|  | </div> | 
|  | <footer class="bd-footer-content"> | 
|  |  | 
|  | </footer> | 
|  |  | 
|  | </main> | 
|  | </div> | 
|  | </div> | 
|  |  | 
|  | <!-- Scripts loaded after <body> so the DOM is not blocked --> | 
|  | <script src="../_static/scripts/bootstrap.js?digest=e353d410970836974a52"></script> | 
|  | <script src="../_static/scripts/pydata-sphinx-theme.js?digest=e353d410970836974a52"></script> | 
|  |  | 
|  | <footer class="bd-footer"> | 
|  | <div class="bd-footer__inner bd-page-width"> | 
|  |  | 
|  | <div class="footer-items__start"> | 
|  |  | 
|  | <div class="footer-item"><p class="copyright"> | 
|  | Copyright @ 2024 The Apache Software Foundation, Licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>. | 
|  | </p></div> | 
|  |  | 
|  | <div class="footer-item"> | 
|  | <p class="sphinx-version"> | 
|  | Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.5.0. | 
|  | <br/> | 
|  | </p> | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  |  | 
|  | <div class="footer-items__end"> | 
|  |  | 
|  | <div class="footer-item"><p class="theme-version"> | 
|  | Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.13.3. | 
|  | </p></div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </div> | 
|  |  | 
|  | </footer> | 
|  | </body> | 
|  | </html> |