blob: d75061f55614f07606f762e123213b430507bc78 [file]
<!DOCTYPE html>
<html lang="en" data-content_root="../../" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Gandiva External Functions Development Guide &#8212; Apache Arrow v24.0.0.dev320</title>
<script data-cfasync="false">
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
</script>
<!--
this give us a css class that will be invisible only if js is disabled
-->
<noscript>
<style>
.pst-js-only { display: none !important; }
</style>
</noscript>
<!-- Loaded before other Sphinx assets -->
<link href="../../_static/styles/theme.css?digest=7f76b32a3354e82990f2" rel="stylesheet" />
<link href="../../_static/styles/pydata-sphinx-theme.css?digest=7f76b32a3354e82990f2" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=03e43079" />
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="../../_static/sphinx-design.min.css?v=95c83b7e" />
<link rel="stylesheet" type="text/css" href="../../_static/theme_overrides.css?v=8dcd28dc" />
<!-- So that users can add custom icons -->
<script defer src="../../_static/scripts/fontawesome.js?digest=7f76b32a3354e82990f2"></script>
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="../../_static/scripts/bootstrap.js?digest=7f76b32a3354e82990f2" />
<link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=7f76b32a3354e82990f2" />
<script src="../../_static/documentation_options.js?v=a15c85f4"></script>
<script src="../../_static/doctools.js?v=fd6eb6e6"></script>
<script src="../../_static/sphinx_highlight.js?v=6ffebe34"></script>
<script src="../../_static/clipboard.min.js?v=a7894cd8"></script>
<script src="../../_static/copybutton.js?v=3bb21c8c"></script>
<script src="../../_static/design-tabs.js?v=f930bc37"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'cpp/gandiva/external_func';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.17.0';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = '/docs/_static/versions.json';
DOCUMENTATION_OPTIONS.theme_switcher_version_match = 'dev/';
DOCUMENTATION_OPTIONS.show_version_warning_banner =
true;
</script>
<script>DOCUMENTATION_OPTIONS.search_as_you_type = false;</script>
<link rel="canonical" href="https://arrow.apache.org/docs/cpp/gandiva/external_func.html" />
<link rel="icon" href="../../_static/favicon.ico"/>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Acero: A C++ streaming execution engine" href="../acero.html" />
<link rel="prev" title="Gandiva Expression, Projector, and Filter" href="expr_projector_filter.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<meta name="docsearch:version" content="24.0.0.dev320" />
<script src="../../_static/searchtools.js"></script>
<script src="../../_static/language_data.js"></script>
<script src="../../searchindex.js"></script>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_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', '20']);
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-default-mode="">
<div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div>
<div id="pst-scroll-pixel-helper"></div>
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
<i class="fa-solid fa-arrow-up"></i>Back to top</button>
<dialog id="pst-search-dialog">
<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"
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>
</dialog>
<div class="pst-async-banner-revealer d-none">
<aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside>
</div>
<header id="pst-header" class="bd-header navbar navbar-expand-lg bd-navbar d-print-none">
<div class="bd-header__inner bd-page-width">
<button class="pst-navbar-icon sidebar-toggle primary-toggle" aria-label="Site navigation">
<span class="fa-solid fa-bars"></span>
</button>
<div class=" navbar-header-items__start">
<div class="navbar-item">
<a class="navbar-brand logo" href="../../index.html">
<img src="../../_static/arrow.png" class="logo__image only-light" alt="Apache Arrow v24.0.0.dev320 - Home"/>
<img src="../../_static/arrow-dark.png" class="logo__image only-dark pst-js-only" alt="Apache Arrow v24.0.0.dev320 - Home"/>
</a></div>
</div>
<div class=" navbar-header-items">
<div class="me-auto navbar-header-items__center">
<div class="navbar-item">
<nav>
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item ">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item ">
<a class="nav-link nav-internal" href="../../developers/index.html">
Development
</a>
</li>
<li class="nav-item current active">
<a class="nav-link nav-internal" href="../../implementations.html">
Implementations
</a>
</li>
</ul>
</nav></div>
</div>
<div class="navbar-header-items__end">
<div class="navbar-item navbar-persistent--container">
<button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
</div>
<div class="navbar-item"><div class="kapa-ai-bot">
<script
async
src="https://widget.kapa.ai/kapa-widget.bundle.js"
data-website-id="9db461d5-ac77-4b3f-a5c5-75efa78339d2"
data-project-name="Apache Arrow"
data-project-color="#000000"
data-project-logo="https://arrow.apache.org/img/arrow-logo_chevrons_white-txt_black-bg.png"
data-modal-disclaimer="This is a custom LLM with access to all [Arrow documentation](https://arrow.apache.org/docs/). Please include the language you are using in your question, e.g., Python, C++, Java, R, etc."
data-consent-required="true"
data-user-analytics-cookie-enabled="false"
data-consent-screen-disclaimer="By clicking &quot;I agree, let's chat&quot;, you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies."
></script>
</div>
</div>
<div class="navbar-item">
<div class="version-switcher__container dropdown pst-js-only">
<button id="pst-version-switcher-button-2"
type="button"
class="version-switcher__button btn btn-sm dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-2"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-2"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-2">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div></div>
<div class="navbar-item">
<button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i>
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i>
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i>
</button></div>
<div class="navbar-item"><ul class="navbar-icon-links"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://www.linkedin.com/company/apache-arrow/" title="LinkedIn" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i>
<span class="sr-only">LinkedIn</span></a>
</li>
<li class="nav-item">
<a href="https://bsky.app/profile/arrow.apache.org" title="BlueSky" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-bluesky fa-lg" aria-hidden="true"></i>
<span class="sr-only">BlueSky</span></a>
</li>
</ul></div>
</div>
</div>
<div class="navbar-persistent--mobile">
<button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
</div>
<button class="pst-navbar-icon sidebar-toggle secondary-toggle" aria-label="On this page">
<span class="fa-solid fa-outdent"></span>
</button>
</div>
</header>
<div class="bd-container">
<div class="bd-container__inner bd-page-width">
<dialog id="pst-primary-sidebar-modal"></dialog>
<div id="pst-primary-sidebar" 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>
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item ">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item ">
<a class="nav-link nav-internal" href="../../developers/index.html">
Development
</a>
</li>
<li class="nav-item current active">
<a class="nav-link nav-internal" href="../../implementations.html">
Implementations
</a>
</li>
</ul>
</nav></div>
</div>
<div class="sidebar-header-items__end">
<div class="navbar-item"><div class="kapa-ai-bot">
<script
async
src="https://widget.kapa.ai/kapa-widget.bundle.js"
data-website-id="9db461d5-ac77-4b3f-a5c5-75efa78339d2"
data-project-name="Apache Arrow"
data-project-color="#000000"
data-project-logo="https://arrow.apache.org/img/arrow-logo_chevrons_white-txt_black-bg.png"
data-modal-disclaimer="This is a custom LLM with access to all [Arrow documentation](https://arrow.apache.org/docs/). Please include the language you are using in your question, e.g., Python, C++, Java, R, etc."
data-consent-required="true"
data-user-analytics-cookie-enabled="false"
data-consent-screen-disclaimer="By clicking &quot;I agree, let's chat&quot;, you consent to the use of the AI assistant in accordance with kapa.ai's [Privacy Policy](https://www.kapa.ai/content/privacy-policy). This service uses reCAPTCHA, which requires your consent to Google's [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms). By proceeding, you explicitly agree to both kapa.ai's and Google's privacy policies."
></script>
</div>
</div>
<div class="navbar-item">
<div class="version-switcher__container dropdown pst-js-only">
<button id="pst-version-switcher-button-3"
type="button"
class="version-switcher__button btn btn-sm dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-3"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-3"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-3">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div></div>
<div class="navbar-item">
<button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i>
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i>
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i>
</button></div>
<div class="navbar-item"><ul class="navbar-icon-links"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://www.linkedin.com/company/apache-arrow/" title="LinkedIn" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-linkedin fa-lg" aria-hidden="true"></i>
<span class="sr-only">LinkedIn</span></a>
</li>
<li class="nav-item">
<a href="https://bsky.app/profile/arrow.apache.org" title="BlueSky" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-bluesky fa-lg" aria-hidden="true"></i>
<span class="sr-only">BlueSky</span></a>
</li>
</ul></div>
</div>
</div>
<div class="sidebar-primary-items__start sidebar-primary__section">
<div class="sidebar-primary-item pst-sidebar-collapse"><button id="pst-collapse-sidebar-button" aria-expanded="true" aria-controls="pst-primary-sidebar"><svg class="pst-icon svg-inline--fa" role="img" aria-hidden="true" focusable="false" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor" d="M3 15.5C2.36232 15.5 1.74874 15.2564 1.28478 14.8189C0.820828 14.3815 0.541576 13.7832 0.504167 13.1467L0.5 13L0.5 3C0.499965 2.36232 0.743605 1.74874 1.18107 1.28478C1.61854 0.820828 2.21676 0.541576 2.85333 0.504167L3 0.5L13 0.5C13.6377 0.499965 14.2513 0.743605 14.7152 1.18107C15.1792 1.61854 15.4584 2.21676 15.4958 2.85333L15.5 3L15.5 13C15.5 13.6377 15.2564 14.2513 14.8189 14.7152C14.3815 15.1792 13.7832 15.4584 13.1467 15.4958L13 15.5L3 15.5ZM3 13.8333L10.5 13.8333L10.5 2.16667L3 2.16667C2.79589 2.16669 2.59889 2.24163 2.44636 2.37726C2.29383 2.5129 2.19638 2.69979 2.1725 2.9025L2.16667 3L2.16667 13C2.16669 13.2041 2.24163 13.4011 2.37726 13.5536C2.5129 13.7062 2.69979 13.8036 2.9025 13.8275L3 13.8333ZM6.65583 10.325L6.5775 10.2558L4.91083 8.58917C4.76735 8.44567 4.68116 8.25476 4.66843 8.05223C4.65569 7.84971 4.71729 7.6495 4.84167 7.48917L4.91083 7.41083L6.5775 5.74417C6.72747 5.59471 6.9287 5.50794 7.14032 5.50148C7.35194 5.49502 7.55809 5.56935 7.7169 5.70937C7.8757 5.8494 7.97525 6.04463 7.99533 6.25539C8.01541 6.46616 7.95451 6.67667 7.825 6.84417L7.75583 6.9225L6.67917 8L7.75583 9.0775C7.89931 9.22099 7.98551 9.41191 7.99824 9.61443C8.01097 9.81695 7.94938 10.0172 7.825 10.1775L7.75583 10.2558C7.61234 10.3993 7.42142 10.4855 7.2189 10.4982C7.01638 10.511 6.81617 10.4494 6.65583 10.325Z"/>
</svg>
<span class="pst-collapse-sidebar-label">Collapse Sidebar</span>
<span class="pst-expand-sidebar-label">Expand Sidebar</span>
</button></div>
<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="current nav bd-sidenav">
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/dotnet/">.NET</a></li>
<li class="toctree-l1 current active has-children"><a class="reference internal" href="../index.html">C++</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul class="current">
<li class="toctree-l2 has-children"><a class="reference internal" href="../getting_started.html">Getting Started</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l3"><a class="reference internal" href="../build_system.html">Using Arrow C++ in your own project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../conventions.html">Conventions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/basic_arrow.html">Basic Arrow Data Structures</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/io_tutorial.html">Arrow File I/O</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/compute_tutorial.html">Arrow Compute</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tutorials/datasets_tutorial.html">Arrow Datasets</a></li>
</ul>
</details></li>
<li class="toctree-l2 current active has-children"><a class="reference internal" href="../user_guide.html">User Guide</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../overview.html">High-Level Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../memory.html">Memory Management</a></li>
<li class="toctree-l3"><a class="reference internal" href="../arrays.html">Arrays</a></li>
<li class="toctree-l3"><a class="reference internal" href="../datatypes.html">Data Types</a></li>
<li class="toctree-l3"><a class="reference internal" href="../tables.html">Tabular Data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../compute.html">Compute Functions</a></li>
<li class="toctree-l3 current active has-children"><a class="reference internal" href="../gandiva.html">The Gandiva Expression Compiler</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="expr_projector_filter.html">Gandiva Expression, Projector, and Filter</a></li>
<li class="toctree-l4 current active"><a class="current reference internal" href="#">Gandiva External Functions Development Guide</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../acero.html">Acero: A C++ streaming execution engine</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../acero/overview.html">Acero Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../acero/user_guide.html">Acero User’s Guide</a></li>
<li class="toctree-l4"><a class="reference internal" href="../acero/substrait.html">Using Acero with Substrait</a></li>
</ul>
</details></li>
<li class="toctree-l3"><a class="reference internal" href="../io.html">Input / output and filesystems</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ipc.html">Reading and writing the Arrow IPC format</a></li>
<li class="toctree-l3"><a class="reference internal" href="../orc.html">Reading and Writing ORC files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../parquet.html">Reading and writing Parquet files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../csv.html">Reading and Writing CSV files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../json.html">Reading JSON files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../dataset.html">Tabular Datasets</a></li>
<li class="toctree-l3"><a class="reference internal" href="../flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l3"><a class="reference internal" href="../security.html">Security Considerations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../gdb.html">Debugging code using Arrow</a></li>
<li class="toctree-l3"><a class="reference internal" href="../threading.html">Thread Management</a></li>
<li class="toctree-l3"><a class="reference internal" href="../opentelemetry.html">OpenTelemetry</a></li>
<li class="toctree-l3"><a class="reference internal" href="../env_vars.html">Environment Variables</a></li>
</ul>
</details></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../examples/index.html">Examples</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l3"><a class="reference internal" href="../examples/cmake_minimal_build.html">Minimal build using CMake</a></li>
<li class="toctree-l3"><a class="reference internal" href="../examples/compute_and_write_example.html">Compute and Write CSV Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../examples/dataset_documentation_example.html">Arrow Datasets example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../examples/parquet_column_encryption.html">Parquet column encryption</a></li>
<li class="toctree-l3"><a class="reference internal" href="../examples/row_columnar_conversion.html">Row to columnar conversion</a></li>
<li class="toctree-l3"><a class="reference internal" href="../examples/tuple_range_conversion.html">std::tuple-like ranges to Arrow</a></li>
<li class="toctree-l3"><a class="reference internal" href="../examples/converting_recordbatch_to_tensor.html">Converting RecordBatch to Tensor</a></li>
</ul>
</details></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../api.html">API Reference</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l3"><a class="reference internal" href="../api/support.html">Programming Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/memory.html">Memory (management)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/thread.html">Thread (management)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/datatype.html">Data Types</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/array.html">Arrays</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/extension.html">Extension</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/scalar.html">Scalars</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/builder.html">Array Builders</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/table.html">Two-dimensional Datasets</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/c_abi.html">C Interfaces</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/compute.html">Compute Functions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/acero.html">Streaming Execution (Acero)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/gandiva.html">Gandiva Expression Compiler</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/tensor.html">Tensors</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/utilities.html">Utilities</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/async.html">Asynchronous programming</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/io.html">Input / output</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/ipc.html">Arrow IPC</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/formats.html">File Formats</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/cuda.html">CUDA support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/flightsql.html">Arrow Flight SQL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/filesystem.html">Filesystems</a></li>
<li class="toctree-l3"><a class="reference internal" href="../api/dataset.html">Dataset</a></li>
</ul>
</details></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../developers/cpp/index.html">C++ Development</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/building.html">Building Arrow C++</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/development.html">Development Guidelines</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/windows.html">Developing on Windows</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/emscripten.html">Cross compiling for WebAssembly with Emscripten</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/conventions.html">Conventions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/fuzzing.html">Fuzzing Arrow C++</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../developers/cpp/compute.html">Developing Arrow C++ Compute</a></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../developers/cpp/acero.html">Developing Acero</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../developers/cpp/acero/swiss_table.html">Swiss Table</a></li>
</ul>
</details></li>
</ul>
</details></li>
<li class="toctree-l2"><a class="reference external" href="https://arrow.apache.org/cookbook/cpp/">C++ Cookbook</a></li>
</ul>
</details></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../c_glib/index.html">C GLib</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/arrow-glib/index.html">Apache Arrow GLib</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/arrow-cuda-glib/index.html">Apache Arrow CUDA GLib</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/arrow-dataset-glib/index.html">Apache Arrow Dataset</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/arrow-flight-glib/index.html">Apache Arrow Flight GLib</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/arrow-flight-sql-glib/index.html">Apache Arrow Flight SQL GLib</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/parquet-glib/index.html">Apache Parquet GLib</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../c_glib/gandiva-glib/index.html">Gandiva GLib</a></li>
</ul>
</details></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/go/">Go</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/java/current/">Java</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/js/current/">JavaScript</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/julia/">Julia</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">MATLAB</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../../python/index.html">Python</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l2"><a class="reference internal" href="../../python/install.html">Installing PyArrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/getstarted.html">Getting Started</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/data.html">Data Types and In-Memory Data Model</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/compute.html">Compute Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/memory.html">Memory and IO Interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/ipc.html">Streaming, Serialization, and IPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/filesystems.html">Filesystem Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/numpy.html">NumPy Integration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/pandas.html">Pandas Integration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/interchange_protocol.html">Dataframe Interchange Protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/dlpack.html">The DLPack Protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/timestamps.html">Timestamps</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/orc.html">Reading and Writing the Apache ORC Format</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/csv.html">Reading and Writing CSV files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/feather.html">Feather File Format</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/json.html">Reading JSON files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/parquet.html">Reading and Writing the Apache Parquet Format</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/dataset.html">Tabular Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/extending_types.html">Extending PyArrow</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../python/integration.html">PyArrow Integrations</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l3"><a class="reference internal" href="../../python/integration/substrait.html">Substrait</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../python/integration/python_r.html">Integrating PyArrow with R</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../python/integration/python_java.html">Integrating PyArrow with Java</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../python/integration/extending.html">Using pyarrow from C++ and Cython Code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../python/integration/cuda.html">CUDA Integration</a></li>
</ul>
</details></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/env_vars.html">Environment Variables</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../../python/api.html">API Reference</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/datatypes.html">Data Types and Schemas</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.null.html">pyarrow.null</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.bool_.html">pyarrow.bool_</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.int8.html">pyarrow.int8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.int16.html">pyarrow.int16</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.int32.html">pyarrow.int32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.int64.html">pyarrow.int64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.uint8.html">pyarrow.uint8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.uint16.html">pyarrow.uint16</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.uint32.html">pyarrow.uint32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.uint64.html">pyarrow.uint64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.float16.html">pyarrow.float16</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.float32.html">pyarrow.float32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.float64.html">pyarrow.float64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.time32.html">pyarrow.time32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.time64.html">pyarrow.time64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.timestamp.html">pyarrow.timestamp</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.date32.html">pyarrow.date32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.date64.html">pyarrow.date64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.duration.html">pyarrow.duration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.month_day_nano_interval.html">pyarrow.month_day_nano_interval</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.binary.html">pyarrow.binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.string.html">pyarrow.string</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.utf8.html">pyarrow.utf8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.large_binary.html">pyarrow.large_binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.large_string.html">pyarrow.large_string</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.large_utf8.html">pyarrow.large_utf8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.binary_view.html">pyarrow.binary_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.string_view.html">pyarrow.string_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.decimal128.html">pyarrow.decimal128</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.decimal256.html">pyarrow.decimal256</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.list_.html">pyarrow.list_</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.large_list.html">pyarrow.large_list</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.list_view.html">pyarrow.list_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.large_list_view.html">pyarrow.large_list_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.map_.html">pyarrow.map_</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.struct.html">pyarrow.struct</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dictionary.html">pyarrow.dictionary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.run_end_encoded.html">pyarrow.run_end_encoded</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fixed_shape_tensor.html">pyarrow.fixed_shape_tensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.union.html">pyarrow.union</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dense_union.html">pyarrow.dense_union</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.sparse_union.html">pyarrow.sparse_union</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.opaque.html">pyarrow.opaque</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.bool8.html">pyarrow.bool8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.uuid.html">pyarrow.uuid</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.json_.html">pyarrow.json_</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.field.html">pyarrow.field</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.schema.html">pyarrow.schema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.from_numpy_dtype.html">pyarrow.from_numpy_dtype</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.unify_schemas.html">pyarrow.unify_schemas</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DataType.html">pyarrow.DataType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DictionaryType.html">pyarrow.DictionaryType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ListType.html">pyarrow.ListType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ListViewType.html">pyarrow.ListViewType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeListType.html">pyarrow.FixedSizeListType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeListType.html">pyarrow.LargeListType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeListViewType.html">pyarrow.LargeListViewType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MapType.html">pyarrow.MapType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StructType.html">pyarrow.StructType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UnionType.html">pyarrow.UnionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DenseUnionType.html">pyarrow.DenseUnionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.SparseUnionType.html">pyarrow.SparseUnionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.TimestampType.html">pyarrow.TimestampType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Time32Type.html">pyarrow.Time32Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Time64Type.html">pyarrow.Time64Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DurationType.html">pyarrow.DurationType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBinaryType.html">pyarrow.FixedSizeBinaryType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal32Type.html">pyarrow.Decimal32Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal64Type.html">pyarrow.Decimal64Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal128Type.html">pyarrow.Decimal128Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal256Type.html">pyarrow.Decimal256Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Field.html">pyarrow.Field</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Schema.html">pyarrow.Schema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.RunEndEncodedType.html">pyarrow.RunEndEncodedType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BaseExtensionType.html">pyarrow.BaseExtensionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ExtensionType.html">pyarrow.ExtensionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UnknownExtensionType.html">pyarrow.UnknownExtensionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.register_extension_type.html">pyarrow.register_extension_type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.unregister_extension_type.html">pyarrow.unregister_extension_type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedShapeTensorType.html">pyarrow.FixedShapeTensorType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.OpaqueType.html">pyarrow.OpaqueType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.JsonType.html">pyarrow.JsonType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UuidType.html">pyarrow.UuidType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Bool8Type.html">pyarrow.Bool8Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_boolean.html">pyarrow.types.is_boolean</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_integer.html">pyarrow.types.is_integer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_signed_integer.html">pyarrow.types.is_signed_integer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_unsigned_integer.html">pyarrow.types.is_unsigned_integer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_int8.html">pyarrow.types.is_int8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_int16.html">pyarrow.types.is_int16</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_int32.html">pyarrow.types.is_int32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_int64.html">pyarrow.types.is_int64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_uint8.html">pyarrow.types.is_uint8</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_uint16.html">pyarrow.types.is_uint16</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_uint32.html">pyarrow.types.is_uint32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_uint64.html">pyarrow.types.is_uint64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_floating.html">pyarrow.types.is_floating</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_float16.html">pyarrow.types.is_float16</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_float32.html">pyarrow.types.is_float32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_float64.html">pyarrow.types.is_float64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_decimal.html">pyarrow.types.is_decimal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_decimal128.html">pyarrow.types.is_decimal128</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_decimal256.html">pyarrow.types.is_decimal256</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_list.html">pyarrow.types.is_list</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_large_list.html">pyarrow.types.is_large_list</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_fixed_size_list.html">pyarrow.types.is_fixed_size_list</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_list_view.html">pyarrow.types.is_list_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_large_list_view.html">pyarrow.types.is_large_list_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_struct.html">pyarrow.types.is_struct</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_union.html">pyarrow.types.is_union</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_nested.html">pyarrow.types.is_nested</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_run_end_encoded.html">pyarrow.types.is_run_end_encoded</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_temporal.html">pyarrow.types.is_temporal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_timestamp.html">pyarrow.types.is_timestamp</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_date.html">pyarrow.types.is_date</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_date32.html">pyarrow.types.is_date32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_date64.html">pyarrow.types.is_date64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_time.html">pyarrow.types.is_time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_time32.html">pyarrow.types.is_time32</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_time64.html">pyarrow.types.is_time64</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_duration.html">pyarrow.types.is_duration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_interval.html">pyarrow.types.is_interval</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_null.html">pyarrow.types.is_null</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_binary.html">pyarrow.types.is_binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_unicode.html">pyarrow.types.is_unicode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_string.html">pyarrow.types.is_string</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_large_binary.html">pyarrow.types.is_large_binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_large_unicode.html">pyarrow.types.is_large_unicode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_large_string.html">pyarrow.types.is_large_string</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_binary_view.html">pyarrow.types.is_binary_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_string_view.html">pyarrow.types.is_string_view</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_fixed_size_binary.html">pyarrow.types.is_fixed_size_binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_map.html">pyarrow.types.is_map</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_dictionary.html">pyarrow.types.is_dictionary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.is_primitive.html">pyarrow.types.is_primitive</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.types.TypesEnum.html">pyarrow.types.TypesEnum</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/arrays.html">Arrays and Scalars</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.arange.html">pyarrow.arange</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.array.html">pyarrow.array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.nulls.html">pyarrow.nulls</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.repeat.html">pyarrow.repeat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.infer_type.html">pyarrow.infer_type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Array.html">pyarrow.Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BooleanArray.html">pyarrow.BooleanArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FloatingPointArray.html">pyarrow.FloatingPointArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.IntegerArray.html">pyarrow.IntegerArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int8Array.html">pyarrow.Int8Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int16Array.html">pyarrow.Int16Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int32Array.html">pyarrow.Int32Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int64Array.html">pyarrow.Int64Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.NullArray.html">pyarrow.NullArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.NumericArray.html">pyarrow.NumericArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt8Array.html">pyarrow.UInt8Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt16Array.html">pyarrow.UInt16Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt32Array.html">pyarrow.UInt32Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt64Array.html">pyarrow.UInt64Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.HalfFloatArray.html">pyarrow.HalfFloatArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FloatArray.html">pyarrow.FloatArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DoubleArray.html">pyarrow.DoubleArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BinaryArray.html">pyarrow.BinaryArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StringArray.html">pyarrow.StringArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBinaryArray.html">pyarrow.FixedSizeBinaryArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeBinaryArray.html">pyarrow.LargeBinaryArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeStringArray.html">pyarrow.LargeStringArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BinaryViewArray.html">pyarrow.BinaryViewArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StringViewArray.html">pyarrow.StringViewArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Time32Array.html">pyarrow.Time32Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Time64Array.html">pyarrow.Time64Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Date32Array.html">pyarrow.Date32Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Date64Array.html">pyarrow.Date64Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.TimestampArray.html">pyarrow.TimestampArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DurationArray.html">pyarrow.DurationArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MonthDayNanoIntervalArray.html">pyarrow.MonthDayNanoIntervalArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal32Array.html">pyarrow.Decimal32Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal64Array.html">pyarrow.Decimal64Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal128Array.html">pyarrow.Decimal128Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal256Array.html">pyarrow.Decimal256Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DictionaryArray.html">pyarrow.DictionaryArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ListArray.html">pyarrow.ListArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeListArray.html">pyarrow.FixedSizeListArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeListArray.html">pyarrow.LargeListArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ListViewArray.html">pyarrow.ListViewArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeListViewArray.html">pyarrow.LargeListViewArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MapArray.html">pyarrow.MapArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.RunEndEncodedArray.html">pyarrow.RunEndEncodedArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StructArray.html">pyarrow.StructArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UnionArray.html">pyarrow.UnionArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ExtensionArray.html">pyarrow.ExtensionArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedShapeTensorArray.html">pyarrow.FixedShapeTensorArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.OpaqueArray.html">pyarrow.OpaqueArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.JsonArray.html">pyarrow.JsonArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UuidArray.html">pyarrow.UuidArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Bool8Array.html">pyarrow.Bool8Array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.scalar.html">pyarrow.scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.NA.html">pyarrow.NA</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Scalar.html">pyarrow.Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BooleanScalar.html">pyarrow.BooleanScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int8Scalar.html">pyarrow.Int8Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int16Scalar.html">pyarrow.Int16Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int32Scalar.html">pyarrow.Int32Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Int64Scalar.html">pyarrow.Int64Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.NullScalar.html">pyarrow.NullScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt8Scalar.html">pyarrow.UInt8Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt16Scalar.html">pyarrow.UInt16Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt32Scalar.html">pyarrow.UInt32Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UInt64Scalar.html">pyarrow.UInt64Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.HalfFloatScalar.html">pyarrow.HalfFloatScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FloatScalar.html">pyarrow.FloatScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DoubleScalar.html">pyarrow.DoubleScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BinaryScalar.html">pyarrow.BinaryScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StringScalar.html">pyarrow.StringScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBinaryScalar.html">pyarrow.FixedSizeBinaryScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeBinaryScalar.html">pyarrow.LargeBinaryScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeStringScalar.html">pyarrow.LargeStringScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BinaryViewScalar.html">pyarrow.BinaryViewScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StringViewScalar.html">pyarrow.StringViewScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Time32Scalar.html">pyarrow.Time32Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Time64Scalar.html">pyarrow.Time64Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Date32Scalar.html">pyarrow.Date32Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Date64Scalar.html">pyarrow.Date64Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.TimestampScalar.html">pyarrow.TimestampScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DurationScalar.html">pyarrow.DurationScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MonthDayNanoIntervalScalar.html">pyarrow.MonthDayNanoIntervalScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal32Scalar.html">pyarrow.Decimal32Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal64Scalar.html">pyarrow.Decimal64Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal128Scalar.html">pyarrow.Decimal128Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Decimal256Scalar.html">pyarrow.Decimal256Scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.DictionaryScalar.html">pyarrow.DictionaryScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.RunEndEncodedScalar.html">pyarrow.RunEndEncodedScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ListScalar.html">pyarrow.ListScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeListScalar.html">pyarrow.FixedSizeListScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeListScalar.html">pyarrow.LargeListScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ListViewScalar.html">pyarrow.ListViewScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.LargeListViewScalar.html">pyarrow.LargeListViewScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MapScalar.html">pyarrow.MapScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.StructScalar.html">pyarrow.StructScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UnionScalar.html">pyarrow.UnionScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ExtensionScalar.html">pyarrow.ExtensionScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedShapeTensorScalar.html">pyarrow.FixedShapeTensorScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.OpaqueScalar.html">pyarrow.OpaqueScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.JsonScalar.html">pyarrow.JsonScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.UuidScalar.html">pyarrow.UuidScalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Bool8Scalar.html">pyarrow.Bool8Scalar</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/memory.html">Buffers and Memory</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.allocate_buffer.html">pyarrow.allocate_buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.py_buffer.html">pyarrow.py_buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.foreign_buffer.html">pyarrow.foreign_buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Buffer.html">pyarrow.Buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ResizableBuffer.html">pyarrow.ResizableBuffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Codec.html">pyarrow.Codec</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compress.html">pyarrow.compress</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.decompress.html">pyarrow.decompress</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MemoryPool.html">pyarrow.MemoryPool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.default_memory_pool.html">pyarrow.default_memory_pool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.jemalloc_memory_pool.html">pyarrow.jemalloc_memory_pool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.mimalloc_memory_pool.html">pyarrow.mimalloc_memory_pool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.system_memory_pool.html">pyarrow.system_memory_pool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.jemalloc_set_decay_ms.html">pyarrow.jemalloc_set_decay_ms</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.set_memory_pool.html">pyarrow.set_memory_pool</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.log_memory_allocations.html">pyarrow.log_memory_allocations</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.total_allocated_bytes.html">pyarrow.total_allocated_bytes</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/tables.html">Tables and Tensors</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.chunked_array.html">pyarrow.chunked_array</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.concat_arrays.html">pyarrow.concat_arrays</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.concat_tables.html">pyarrow.concat_tables</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.record_batch.html">pyarrow.record_batch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.concat_batches.html">pyarrow.concat_batches</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.table.html">pyarrow.table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ChunkedArray.html">pyarrow.ChunkedArray</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.RecordBatch.html">pyarrow.RecordBatch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Table.html">pyarrow.Table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.TableGroupBy.html">pyarrow.TableGroupBy</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.RecordBatchReader.html">pyarrow.RecordBatchReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.interchange.from_dataframe.html">pyarrow.interchange.from_dataframe</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.Tensor.html">pyarrow.Tensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.SparseCOOTensor.html">pyarrow.SparseCOOTensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.SparseCSRMatrix.html">pyarrow.SparseCSRMatrix</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.SparseCSCMatrix.html">pyarrow.SparseCSCMatrix</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.SparseCSFTensor.html">pyarrow.SparseCSFTensor</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/compute.html">Compute Functions</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.all.html">pyarrow.compute.all</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.any.html">pyarrow.compute.any</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.approximate_median.html">pyarrow.compute.approximate_median</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.count.html">pyarrow.compute.count</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.count_distinct.html">pyarrow.compute.count_distinct</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.first.html">pyarrow.compute.first</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.first_last.html">pyarrow.compute.first_last</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.index.html">pyarrow.compute.index</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.kurtosis.html">pyarrow.compute.kurtosis</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.last.html">pyarrow.compute.last</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.max.html">pyarrow.compute.max</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.mean.html">pyarrow.compute.mean</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.min.html">pyarrow.compute.min</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.min_max.html">pyarrow.compute.min_max</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.mode.html">pyarrow.compute.mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.pivot_wider.html">pyarrow.compute.pivot_wider</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.product.html">pyarrow.compute.product</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.quantile.html">pyarrow.compute.quantile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.skew.html">pyarrow.compute.skew</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.stddev.html">pyarrow.compute.stddev</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sum.html">pyarrow.compute.sum</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.tdigest.html">pyarrow.compute.tdigest</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.variance.html">pyarrow.compute.variance</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_sum.html">pyarrow.compute.cumulative_sum</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_sum_checked.html">pyarrow.compute.cumulative_sum_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_prod.html">pyarrow.compute.cumulative_prod</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_prod_checked.html">pyarrow.compute.cumulative_prod_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_max.html">pyarrow.compute.cumulative_max</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_mean.html">pyarrow.compute.cumulative_mean</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cumulative_min.html">pyarrow.compute.cumulative_min</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.abs.html">pyarrow.compute.abs</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.abs_checked.html">pyarrow.compute.abs_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.add.html">pyarrow.compute.add</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.add_checked.html">pyarrow.compute.add_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.divide.html">pyarrow.compute.divide</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.divide_checked.html">pyarrow.compute.divide_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.exp.html">pyarrow.compute.exp</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.expm1.html">pyarrow.compute.expm1</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.multiply.html">pyarrow.compute.multiply</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.multiply_checked.html">pyarrow.compute.multiply_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.negate.html">pyarrow.compute.negate</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.negate_checked.html">pyarrow.compute.negate_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.power.html">pyarrow.compute.power</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.power_checked.html">pyarrow.compute.power_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sign.html">pyarrow.compute.sign</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sqrt.html">pyarrow.compute.sqrt</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sqrt_checked.html">pyarrow.compute.sqrt_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.subtract.html">pyarrow.compute.subtract</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.subtract_checked.html">pyarrow.compute.subtract_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.bit_wise_and.html">pyarrow.compute.bit_wise_and</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.bit_wise_not.html">pyarrow.compute.bit_wise_not</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.bit_wise_or.html">pyarrow.compute.bit_wise_or</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.bit_wise_xor.html">pyarrow.compute.bit_wise_xor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.shift_left.html">pyarrow.compute.shift_left</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.shift_left_checked.html">pyarrow.compute.shift_left_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.shift_right.html">pyarrow.compute.shift_right</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.shift_right_checked.html">pyarrow.compute.shift_right_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ceil.html">pyarrow.compute.ceil</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.floor.html">pyarrow.compute.floor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.round.html">pyarrow.compute.round</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.round_binary.html">pyarrow.compute.round_binary</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.round_to_multiple.html">pyarrow.compute.round_to_multiple</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.trunc.html">pyarrow.compute.trunc</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ln.html">pyarrow.compute.ln</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ln_checked.html">pyarrow.compute.ln_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.log10.html">pyarrow.compute.log10</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.log10_checked.html">pyarrow.compute.log10_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.log1p.html">pyarrow.compute.log1p</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.log1p_checked.html">pyarrow.compute.log1p_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.log2.html">pyarrow.compute.log2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.log2_checked.html">pyarrow.compute.log2_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.logb.html">pyarrow.compute.logb</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.logb_checked.html">pyarrow.compute.logb_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.acos.html">pyarrow.compute.acos</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.acos_checked.html">pyarrow.compute.acos_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.asin.html">pyarrow.compute.asin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.asin_checked.html">pyarrow.compute.asin_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.atan.html">pyarrow.compute.atan</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.atan2.html">pyarrow.compute.atan2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cos.html">pyarrow.compute.cos</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cos_checked.html">pyarrow.compute.cos_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sin.html">pyarrow.compute.sin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sin_checked.html">pyarrow.compute.sin_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.tan.html">pyarrow.compute.tan</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.tan_checked.html">pyarrow.compute.tan_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.acosh.html">pyarrow.compute.acosh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.acosh_checked.html">pyarrow.compute.acosh_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.asinh.html">pyarrow.compute.asinh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.atanh.html">pyarrow.compute.atanh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.atanh_checked.html">pyarrow.compute.atanh_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cosh.html">pyarrow.compute.cosh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sinh.html">pyarrow.compute.sinh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.tanh.html">pyarrow.compute.tanh</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.equal.html">pyarrow.compute.equal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.greater.html">pyarrow.compute.greater</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.greater_equal.html">pyarrow.compute.greater_equal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.less.html">pyarrow.compute.less</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.less_equal.html">pyarrow.compute.less_equal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.not_equal.html">pyarrow.compute.not_equal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.max_element_wise.html">pyarrow.compute.max_element_wise</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.min_element_wise.html">pyarrow.compute.min_element_wise</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.and_.html">pyarrow.compute.and_</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.and_kleene.html">pyarrow.compute.and_kleene</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.and_not.html">pyarrow.compute.and_not</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.and_not_kleene.html">pyarrow.compute.and_not_kleene</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.invert.html">pyarrow.compute.invert</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.or_.html">pyarrow.compute.or_</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.or_kleene.html">pyarrow.compute.or_kleene</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.xor.html">pyarrow.compute.xor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_alnum.html">pyarrow.compute.ascii_is_alnum</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_alpha.html">pyarrow.compute.ascii_is_alpha</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_decimal.html">pyarrow.compute.ascii_is_decimal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_lower.html">pyarrow.compute.ascii_is_lower</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_printable.html">pyarrow.compute.ascii_is_printable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_space.html">pyarrow.compute.ascii_is_space</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_upper.html">pyarrow.compute.ascii_is_upper</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_alnum.html">pyarrow.compute.utf8_is_alnum</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_alpha.html">pyarrow.compute.utf8_is_alpha</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_decimal.html">pyarrow.compute.utf8_is_decimal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_digit.html">pyarrow.compute.utf8_is_digit</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_lower.html">pyarrow.compute.utf8_is_lower</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_numeric.html">pyarrow.compute.utf8_is_numeric</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_printable.html">pyarrow.compute.utf8_is_printable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_space.html">pyarrow.compute.utf8_is_space</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_upper.html">pyarrow.compute.utf8_is_upper</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_is_title.html">pyarrow.compute.ascii_is_title</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_is_title.html">pyarrow.compute.utf8_is_title</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.string_is_ascii.html">pyarrow.compute.string_is_ascii</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_capitalize.html">pyarrow.compute.ascii_capitalize</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_lower.html">pyarrow.compute.ascii_lower</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_reverse.html">pyarrow.compute.ascii_reverse</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_swapcase.html">pyarrow.compute.ascii_swapcase</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_title.html">pyarrow.compute.ascii_title</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_upper.html">pyarrow.compute.ascii_upper</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_length.html">pyarrow.compute.binary_length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_repeat.html">pyarrow.compute.binary_repeat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_replace_slice.html">pyarrow.compute.binary_replace_slice</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_reverse.html">pyarrow.compute.binary_reverse</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.replace_substring.html">pyarrow.compute.replace_substring</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.replace_substring_regex.html">pyarrow.compute.replace_substring_regex</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_capitalize.html">pyarrow.compute.utf8_capitalize</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_length.html">pyarrow.compute.utf8_length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_lower.html">pyarrow.compute.utf8_lower</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_normalize.html">pyarrow.compute.utf8_normalize</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_replace_slice.html">pyarrow.compute.utf8_replace_slice</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_reverse.html">pyarrow.compute.utf8_reverse</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_swapcase.html">pyarrow.compute.utf8_swapcase</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_title.html">pyarrow.compute.utf8_title</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_upper.html">pyarrow.compute.utf8_upper</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_center.html">pyarrow.compute.ascii_center</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_lpad.html">pyarrow.compute.ascii_lpad</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_rpad.html">pyarrow.compute.ascii_rpad</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_center.html">pyarrow.compute.utf8_center</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_lpad.html">pyarrow.compute.utf8_lpad</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_rpad.html">pyarrow.compute.utf8_rpad</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_zero_fill.html">pyarrow.compute.utf8_zero_fill</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_ltrim.html">pyarrow.compute.ascii_ltrim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_ltrim_whitespace.html">pyarrow.compute.ascii_ltrim_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_rtrim.html">pyarrow.compute.ascii_rtrim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_rtrim_whitespace.html">pyarrow.compute.ascii_rtrim_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_trim.html">pyarrow.compute.ascii_trim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_trim_whitespace.html">pyarrow.compute.ascii_trim_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_ltrim.html">pyarrow.compute.utf8_ltrim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_ltrim_whitespace.html">pyarrow.compute.utf8_ltrim_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_rtrim.html">pyarrow.compute.utf8_rtrim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_rtrim_whitespace.html">pyarrow.compute.utf8_rtrim_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_trim.html">pyarrow.compute.utf8_trim</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_trim_whitespace.html">pyarrow.compute.utf8_trim_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ascii_split_whitespace.html">pyarrow.compute.ascii_split_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.split_pattern.html">pyarrow.compute.split_pattern</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.split_pattern_regex.html">pyarrow.compute.split_pattern_regex</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_split_whitespace.html">pyarrow.compute.utf8_split_whitespace</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.extract_regex.html">pyarrow.compute.extract_regex</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.extract_regex_span.html">pyarrow.compute.extract_regex_span</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_join.html">pyarrow.compute.binary_join</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_join_element_wise.html">pyarrow.compute.binary_join_element_wise</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.binary_slice.html">pyarrow.compute.binary_slice</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.utf8_slice_codeunits.html">pyarrow.compute.utf8_slice_codeunits</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.count_substring.html">pyarrow.compute.count_substring</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.count_substring_regex.html">pyarrow.compute.count_substring_regex</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ends_with.html">pyarrow.compute.ends_with</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.find_substring.html">pyarrow.compute.find_substring</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.find_substring_regex.html">pyarrow.compute.find_substring_regex</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.index_in.html">pyarrow.compute.index_in</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_in.html">pyarrow.compute.is_in</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.match_like.html">pyarrow.compute.match_like</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.match_substring.html">pyarrow.compute.match_substring</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.match_substring_regex.html">pyarrow.compute.match_substring_regex</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.starts_with.html">pyarrow.compute.starts_with</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.indices_nonzero.html">pyarrow.compute.indices_nonzero</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_finite.html">pyarrow.compute.is_finite</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_inf.html">pyarrow.compute.is_inf</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_nan.html">pyarrow.compute.is_nan</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_null.html">pyarrow.compute.is_null</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_valid.html">pyarrow.compute.is_valid</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.true_unless_null.html">pyarrow.compute.true_unless_null</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.case_when.html">pyarrow.compute.case_when</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.choose.html">pyarrow.compute.choose</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.coalesce.html">pyarrow.compute.coalesce</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.if_else.html">pyarrow.compute.if_else</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.cast.html">pyarrow.compute.cast</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ceil_temporal.html">pyarrow.compute.ceil_temporal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.floor_temporal.html">pyarrow.compute.floor_temporal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.round_temporal.html">pyarrow.compute.round_temporal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.run_end_decode.html">pyarrow.compute.run_end_decode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.run_end_encode.html">pyarrow.compute.run_end_encode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.strftime.html">pyarrow.compute.strftime</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.strptime.html">pyarrow.compute.strptime</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.day.html">pyarrow.compute.day</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.day_of_week.html">pyarrow.compute.day_of_week</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.day_of_year.html">pyarrow.compute.day_of_year</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.hour.html">pyarrow.compute.hour</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_dst.html">pyarrow.compute.is_dst</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.is_leap_year.html">pyarrow.compute.is_leap_year</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.iso_week.html">pyarrow.compute.iso_week</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.iso_year.html">pyarrow.compute.iso_year</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.iso_calendar.html">pyarrow.compute.iso_calendar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.microsecond.html">pyarrow.compute.microsecond</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.millisecond.html">pyarrow.compute.millisecond</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.minute.html">pyarrow.compute.minute</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.month.html">pyarrow.compute.month</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.nanosecond.html">pyarrow.compute.nanosecond</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.quarter.html">pyarrow.compute.quarter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.second.html">pyarrow.compute.second</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.subsecond.html">pyarrow.compute.subsecond</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.us_week.html">pyarrow.compute.us_week</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.us_year.html">pyarrow.compute.us_year</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.week.html">pyarrow.compute.week</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.year.html">pyarrow.compute.year</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.year_month_day.html">pyarrow.compute.year_month_day</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.day_time_interval_between.html">pyarrow.compute.day_time_interval_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.days_between.html">pyarrow.compute.days_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.hours_between.html">pyarrow.compute.hours_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.microseconds_between.html">pyarrow.compute.microseconds_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.milliseconds_between.html">pyarrow.compute.milliseconds_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.minutes_between.html">pyarrow.compute.minutes_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.month_day_nano_interval_between.html">pyarrow.compute.month_day_nano_interval_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.month_interval_between.html">pyarrow.compute.month_interval_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.nanoseconds_between.html">pyarrow.compute.nanoseconds_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.quarters_between.html">pyarrow.compute.quarters_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.seconds_between.html">pyarrow.compute.seconds_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.weeks_between.html">pyarrow.compute.weeks_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.years_between.html">pyarrow.compute.years_between</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.assume_timezone.html">pyarrow.compute.assume_timezone</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.local_timestamp.html">pyarrow.compute.local_timestamp</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.random.html">pyarrow.compute.random</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.dictionary_decode.html">pyarrow.compute.dictionary_decode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.dictionary_encode.html">pyarrow.compute.dictionary_encode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.unique.html">pyarrow.compute.unique</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.value_counts.html">pyarrow.compute.value_counts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.array_filter.html">pyarrow.compute.array_filter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.array_take.html">pyarrow.compute.array_take</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.drop_null.html">pyarrow.compute.drop_null</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.filter.html">pyarrow.compute.filter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.inverse_permutation.html">pyarrow.compute.inverse_permutation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.scatter.html">pyarrow.compute.scatter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.take.html">pyarrow.compute.take</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.array_sort_indices.html">pyarrow.compute.array_sort_indices</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.bottom_k_unstable.html">pyarrow.compute.bottom_k_unstable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.partition_nth_indices.html">pyarrow.compute.partition_nth_indices</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.rank.html">pyarrow.compute.rank</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.rank_normal.html">pyarrow.compute.rank_normal</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.rank_quantile.html">pyarrow.compute.rank_quantile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.select_k_unstable.html">pyarrow.compute.select_k_unstable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.sort_indices.html">pyarrow.compute.sort_indices</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.top_k_unstable.html">pyarrow.compute.top_k_unstable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.winsorize.html">pyarrow.compute.winsorize</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.fill_null.html">pyarrow.compute.fill_null</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.fill_null_backward.html">pyarrow.compute.fill_null_backward</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.fill_null_forward.html">pyarrow.compute.fill_null_forward</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.list_element.html">pyarrow.compute.list_element</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.list_flatten.html">pyarrow.compute.list_flatten</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.list_parent_indices.html">pyarrow.compute.list_parent_indices</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.list_slice.html">pyarrow.compute.list_slice</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.list_value_length.html">pyarrow.compute.list_value_length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.make_struct.html">pyarrow.compute.make_struct</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.map_lookup.html">pyarrow.compute.map_lookup</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.replace_with_mask.html">pyarrow.compute.replace_with_mask</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.struct_field.html">pyarrow.compute.struct_field</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.pairwise_diff.html">pyarrow.compute.pairwise_diff</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.pairwise_diff_checked.html">pyarrow.compute.pairwise_diff_checked</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ArraySortOptions.html">pyarrow.compute.ArraySortOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.AssumeTimezoneOptions.html">pyarrow.compute.AssumeTimezoneOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.CastOptions.html">pyarrow.compute.CastOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.CountOptions.html">pyarrow.compute.CountOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.CumulativeOptions.html">pyarrow.compute.CumulativeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.CumulativeSumOptions.html">pyarrow.compute.CumulativeSumOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.DayOfWeekOptions.html">pyarrow.compute.DayOfWeekOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.DictionaryEncodeOptions.html">pyarrow.compute.DictionaryEncodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ElementWiseAggregateOptions.html">pyarrow.compute.ElementWiseAggregateOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ExtractRegexOptions.html">pyarrow.compute.ExtractRegexOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ExtractRegexSpanOptions.html">pyarrow.compute.ExtractRegexSpanOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.FilterOptions.html">pyarrow.compute.FilterOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.IndexOptions.html">pyarrow.compute.IndexOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.InversePermutationOptions.html">pyarrow.compute.InversePermutationOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.JoinOptions.html">pyarrow.compute.JoinOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ListFlattenOptions.html">pyarrow.compute.ListFlattenOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ListSliceOptions.html">pyarrow.compute.ListSliceOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.MakeStructOptions.html">pyarrow.compute.MakeStructOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.MapLookupOptions.html">pyarrow.compute.MapLookupOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.MatchSubstringOptions.html">pyarrow.compute.MatchSubstringOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ModeOptions.html">pyarrow.compute.ModeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.NullOptions.html">pyarrow.compute.NullOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.PadOptions.html">pyarrow.compute.PadOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.PairwiseOptions.html">pyarrow.compute.PairwiseOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.PartitionNthOptions.html">pyarrow.compute.PartitionNthOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.PivotWiderOptions.html">pyarrow.compute.PivotWiderOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.QuantileOptions.html">pyarrow.compute.QuantileOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RandomOptions.html">pyarrow.compute.RandomOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RankOptions.html">pyarrow.compute.RankOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RankQuantileOptions.html">pyarrow.compute.RankQuantileOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ReplaceSliceOptions.html">pyarrow.compute.ReplaceSliceOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ReplaceSubstringOptions.html">pyarrow.compute.ReplaceSubstringOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RoundBinaryOptions.html">pyarrow.compute.RoundBinaryOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RoundOptions.html">pyarrow.compute.RoundOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RoundTemporalOptions.html">pyarrow.compute.RoundTemporalOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RoundToMultipleOptions.html">pyarrow.compute.RoundToMultipleOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.RunEndEncodeOptions.html">pyarrow.compute.RunEndEncodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ScalarAggregateOptions.html">pyarrow.compute.ScalarAggregateOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ScatterOptions.html">pyarrow.compute.ScatterOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SelectKOptions.html">pyarrow.compute.SelectKOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SetLookupOptions.html">pyarrow.compute.SetLookupOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SkewOptions.html">pyarrow.compute.SkewOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SliceOptions.html">pyarrow.compute.SliceOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SortOptions.html">pyarrow.compute.SortOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SplitOptions.html">pyarrow.compute.SplitOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.SplitPatternOptions.html">pyarrow.compute.SplitPatternOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.StrftimeOptions.html">pyarrow.compute.StrftimeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.StrptimeOptions.html">pyarrow.compute.StrptimeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.StructFieldOptions.html">pyarrow.compute.StructFieldOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.TakeOptions.html">pyarrow.compute.TakeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.TDigestOptions.html">pyarrow.compute.TDigestOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.TrimOptions.html">pyarrow.compute.TrimOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.Utf8NormalizeOptions.html">pyarrow.compute.Utf8NormalizeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.VarianceOptions.html">pyarrow.compute.VarianceOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.WeekOptions.html">pyarrow.compute.WeekOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.WinsorizeOptions.html">pyarrow.compute.WinsorizeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.ZeroFillOptions.html">pyarrow.compute.ZeroFillOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.call_function.html">pyarrow.compute.call_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.call_tabular_function.html">pyarrow.compute.call_tabular_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.get_function.html">pyarrow.compute.get_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.list_functions.html">pyarrow.compute.list_functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.register_aggregate_function.html">pyarrow.compute.register_aggregate_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.register_scalar_function.html">pyarrow.compute.register_scalar_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.register_tabular_function.html">pyarrow.compute.register_tabular_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.register_vector_function.html">pyarrow.compute.register_vector_function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.UdfContext.html">pyarrow.compute.UdfContext</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.field.html">pyarrow.compute.field</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.compute.scalar.html">pyarrow.compute.scalar</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/acero.html">Acero - Streaming Execution Engine</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.Declaration.html">pyarrow.acero.Declaration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.ExecNodeOptions.html">pyarrow.acero.ExecNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.TableSourceNodeOptions.html">pyarrow.acero.TableSourceNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.ScanNodeOptions.html">pyarrow.acero.ScanNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.FilterNodeOptions.html">pyarrow.acero.FilterNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.ProjectNodeOptions.html">pyarrow.acero.ProjectNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.AggregateNodeOptions.html">pyarrow.acero.AggregateNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.OrderByNodeOptions.html">pyarrow.acero.OrderByNodeOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.acero.HashJoinNodeOptions.html">pyarrow.acero.HashJoinNodeOptions</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/substrait.html">Substrait</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.run_query.html">pyarrow.substrait.run_query</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.BoundExpressions.html">pyarrow.substrait.BoundExpressions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.deserialize_expressions.html">pyarrow.substrait.deserialize_expressions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.serialize_expressions.html">pyarrow.substrait.serialize_expressions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.serialize_schema.html">pyarrow.substrait.serialize_schema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.deserialize_schema.html">pyarrow.substrait.deserialize_schema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.SubstraitSchema.html">pyarrow.substrait.SubstraitSchema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.substrait.get_supported_functions.html">pyarrow.substrait.get_supported_functions</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/files.html">Streams and File Access</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.input_stream.html">pyarrow.input_stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.output_stream.html">pyarrow.output_stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.memory_map.html">pyarrow.memory_map</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.create_memory_map.html">pyarrow.create_memory_map</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.NativeFile.html">pyarrow.NativeFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.OSFile.html">pyarrow.OSFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.PythonFile.html">pyarrow.PythonFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BufferReader.html">pyarrow.BufferReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.BufferOutputStream.html">pyarrow.BufferOutputStream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.FixedSizeBufferWriter.html">pyarrow.FixedSizeBufferWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.MemoryMappedFile.html">pyarrow.MemoryMappedFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.CompressedInputStream.html">pyarrow.CompressedInputStream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.CompressedOutputStream.html">pyarrow.CompressedOutputStream</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/ipc.html">Serialization and IPC</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.new_file.html">pyarrow.ipc.new_file</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.open_file.html">pyarrow.ipc.open_file</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.new_stream.html">pyarrow.ipc.new_stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.open_stream.html">pyarrow.ipc.open_stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.read_message.html">pyarrow.ipc.read_message</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.read_record_batch.html">pyarrow.ipc.read_record_batch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.get_record_batch_size.html">pyarrow.ipc.get_record_batch_size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.read_tensor.html">pyarrow.ipc.read_tensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.write_tensor.html">pyarrow.ipc.write_tensor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.get_tensor_size.html">pyarrow.ipc.get_tensor_size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.IpcReadOptions.html">pyarrow.ipc.IpcReadOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.IpcWriteOptions.html">pyarrow.ipc.IpcWriteOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.Message.html">pyarrow.ipc.Message</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.MessageReader.html">pyarrow.ipc.MessageReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchFileReader.html">pyarrow.ipc.RecordBatchFileReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchFileWriter.html">pyarrow.ipc.RecordBatchFileWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchStreamReader.html">pyarrow.ipc.RecordBatchStreamReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.ipc.RecordBatchStreamWriter.html">pyarrow.ipc.RecordBatchStreamWriter</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/flight.html">Arrow Flight</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.Action.html">pyarrow.flight.Action</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ActionType.html">pyarrow.flight.ActionType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.DescriptorType.html">pyarrow.flight.DescriptorType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightDescriptor.html">pyarrow.flight.FlightDescriptor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightEndpoint.html">pyarrow.flight.FlightEndpoint</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightInfo.html">pyarrow.flight.FlightInfo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.Location.html">pyarrow.flight.Location</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.MetadataRecordBatchReader.html">pyarrow.flight.MetadataRecordBatchReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.MetadataRecordBatchWriter.html">pyarrow.flight.MetadataRecordBatchWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.Ticket.html">pyarrow.flight.Ticket</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.Result.html">pyarrow.flight.Result</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.connect.html">pyarrow.flight.connect</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightCallOptions.html">pyarrow.flight.FlightCallOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightClient.html">pyarrow.flight.FlightClient</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightStreamReader.html">pyarrow.flight.FlightStreamReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightStreamWriter.html">pyarrow.flight.FlightStreamWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ClientMiddlewareFactory.html">pyarrow.flight.ClientMiddlewareFactory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ClientMiddleware.html">pyarrow.flight.ClientMiddleware</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightDataStream.html">pyarrow.flight.FlightDataStream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightMetadataWriter.html">pyarrow.flight.FlightMetadataWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightServerBase.html">pyarrow.flight.FlightServerBase</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.GeneratorStream.html">pyarrow.flight.GeneratorStream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.RecordBatchStream.html">pyarrow.flight.RecordBatchStream</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ServerCallContext.html">pyarrow.flight.ServerCallContext</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ServerMiddlewareFactory.html">pyarrow.flight.ServerMiddlewareFactory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ServerMiddleware.html">pyarrow.flight.ServerMiddleware</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ClientAuthHandler.html">pyarrow.flight.ClientAuthHandler</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.ServerAuthHandler.html">pyarrow.flight.ServerAuthHandler</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightError.html">pyarrow.flight.FlightError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightCancelledError.html">pyarrow.flight.FlightCancelledError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightInternalError.html">pyarrow.flight.FlightInternalError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightServerError.html">pyarrow.flight.FlightServerError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightTimedOutError.html">pyarrow.flight.FlightTimedOutError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightUnauthenticatedError.html">pyarrow.flight.FlightUnauthenticatedError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightUnauthorizedError.html">pyarrow.flight.FlightUnauthorizedError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightUnavailableError.html">pyarrow.flight.FlightUnavailableError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightWriteSizeExceededError.html">pyarrow.flight.FlightWriteSizeExceededError</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.FlightMethod.html">pyarrow.flight.FlightMethod</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.flight.CallInfo.html">pyarrow.flight.CallInfo</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/formats.html">Tabular File Formats</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.ConvertOptions.html">pyarrow.csv.ConvertOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.CSVStreamingReader.html">pyarrow.csv.CSVStreamingReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.CSVWriter.html">pyarrow.csv.CSVWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.ISO8601.html">pyarrow.csv.ISO8601</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.ParseOptions.html">pyarrow.csv.ParseOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.ReadOptions.html">pyarrow.csv.ReadOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.WriteOptions.html">pyarrow.csv.WriteOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.open_csv.html">pyarrow.csv.open_csv</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.read_csv.html">pyarrow.csv.read_csv</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.write_csv.html">pyarrow.csv.write_csv</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.csv.InvalidRow.html">pyarrow.csv.InvalidRow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.feather.read_feather.html">pyarrow.feather.read_feather</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.feather.read_table.html">pyarrow.feather.read_table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.feather.write_feather.html">pyarrow.feather.write_feather</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.json.ReadOptions.html">pyarrow.json.ReadOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.json.ParseOptions.html">pyarrow.json.ParseOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.json.open_json.html">pyarrow.json.open_json</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.json.read_json.html">pyarrow.json.read_json</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetDataset.html">pyarrow.parquet.ParquetDataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetFile.html">pyarrow.parquet.ParquetFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetWriter.html">pyarrow.parquet.ParquetWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.filters_to_expression.html">pyarrow.parquet.filters_to_expression</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.read_table.html">pyarrow.parquet.read_table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.read_metadata.html">pyarrow.parquet.read_metadata</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.read_pandas.html">pyarrow.parquet.read_pandas</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.read_schema.html">pyarrow.parquet.read_schema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.write_metadata.html">pyarrow.parquet.write_metadata</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.write_table.html">pyarrow.parquet.write_table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.write_to_dataset.html">pyarrow.parquet.write_to_dataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.FileMetaData.html">pyarrow.parquet.FileMetaData</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.RowGroupMetaData.html">pyarrow.parquet.RowGroupMetaData</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.SortingColumn.html">pyarrow.parquet.SortingColumn</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ColumnChunkMetaData.html">pyarrow.parquet.ColumnChunkMetaData</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.Statistics.html">pyarrow.parquet.Statistics</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetSchema.html">pyarrow.parquet.ParquetSchema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ColumnSchema.html">pyarrow.parquet.ColumnSchema</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.ParquetLogicalType.html">pyarrow.parquet.ParquetLogicalType</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.encryption.CryptoFactory.html">pyarrow.parquet.encryption.CryptoFactory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.encryption.KmsClient.html">pyarrow.parquet.encryption.KmsClient</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.encryption.KmsConnectionConfig.html">pyarrow.parquet.encryption.KmsConnectionConfig</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.encryption.EncryptionConfiguration.html">pyarrow.parquet.encryption.EncryptionConfiguration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.parquet.encryption.DecryptionConfiguration.html">pyarrow.parquet.encryption.DecryptionConfiguration</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.orc.ORCFile.html">pyarrow.orc.ORCFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.orc.ORCWriter.html">pyarrow.orc.ORCWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.orc.read_table.html">pyarrow.orc.read_table</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.orc.write_table.html">pyarrow.orc.write_table</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/filesystems.html">Filesystems</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.FileInfo.html">pyarrow.fs.FileInfo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.FileSelector.html">pyarrow.fs.FileSelector</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.FileSystem.html">pyarrow.fs.FileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.LocalFileSystem.html">pyarrow.fs.LocalFileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.S3FileSystem.html">pyarrow.fs.S3FileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.GcsFileSystem.html">pyarrow.fs.GcsFileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.HadoopFileSystem.html">pyarrow.fs.HadoopFileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.SubTreeFileSystem.html">pyarrow.fs.SubTreeFileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.AzureFileSystem.html">pyarrow.fs.AzureFileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.PyFileSystem.html">pyarrow.fs.PyFileSystem</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.FileSystemHandler.html">pyarrow.fs.FileSystemHandler</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.FSSpecHandler.html">pyarrow.fs.FSSpecHandler</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.copy_files.html">pyarrow.fs.copy_files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.initialize_s3.html">pyarrow.fs.initialize_s3</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.finalize_s3.html">pyarrow.fs.finalize_s3</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.resolve_s3_region.html">pyarrow.fs.resolve_s3_region</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.fs.S3LogLevel.html">pyarrow.fs.S3LogLevel</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/dataset.html">Dataset</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.dataset.html">pyarrow.dataset.dataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.parquet_dataset.html">pyarrow.dataset.parquet_dataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.partitioning.html">pyarrow.dataset.partitioning</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.field.html">pyarrow.dataset.field</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.scalar.html">pyarrow.dataset.scalar</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.write_dataset.html">pyarrow.dataset.write_dataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.FileFormat.html">pyarrow.dataset.FileFormat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.CsvFileFormat.html">pyarrow.dataset.CsvFileFormat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.CsvFragmentScanOptions.html">pyarrow.dataset.CsvFragmentScanOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.IpcFileFormat.html">pyarrow.dataset.IpcFileFormat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.JsonFileFormat.html">pyarrow.dataset.JsonFileFormat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.ParquetFileFormat.html">pyarrow.dataset.ParquetFileFormat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.ParquetReadOptions.html">pyarrow.dataset.ParquetReadOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.ParquetFragmentScanOptions.html">pyarrow.dataset.ParquetFragmentScanOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.ParquetFileFragment.html">pyarrow.dataset.ParquetFileFragment</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.OrcFileFormat.html">pyarrow.dataset.OrcFileFormat</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.Partitioning.html">pyarrow.dataset.Partitioning</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.PartitioningFactory.html">pyarrow.dataset.PartitioningFactory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.DirectoryPartitioning.html">pyarrow.dataset.DirectoryPartitioning</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.HivePartitioning.html">pyarrow.dataset.HivePartitioning</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.FilenamePartitioning.html">pyarrow.dataset.FilenamePartitioning</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.Dataset.html">pyarrow.dataset.Dataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.FileSystemDataset.html">pyarrow.dataset.FileSystemDataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.FileSystemFactoryOptions.html">pyarrow.dataset.FileSystemFactoryOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.FileSystemDatasetFactory.html">pyarrow.dataset.FileSystemDatasetFactory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.UnionDataset.html">pyarrow.dataset.UnionDataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.Fragment.html">pyarrow.dataset.Fragment</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.FragmentScanOptions.html">pyarrow.dataset.FragmentScanOptions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.TaggedRecordBatch.html">pyarrow.dataset.TaggedRecordBatch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.Scanner.html">pyarrow.dataset.Scanner</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.Expression.html">pyarrow.dataset.Expression</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.InMemoryDataset.html">pyarrow.dataset.InMemoryDataset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.WrittenFile.html">pyarrow.dataset.WrittenFile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.dataset.get_partition_keys.html">pyarrow.dataset.get_partition_keys</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/cuda.html">CUDA Integration</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.Context.html">pyarrow.cuda.Context</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.CudaBuffer.html">pyarrow.cuda.CudaBuffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.new_host_buffer.html">pyarrow.cuda.new_host_buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.HostBuffer.html">pyarrow.cuda.HostBuffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.BufferReader.html">pyarrow.cuda.BufferReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.BufferWriter.html">pyarrow.cuda.BufferWriter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.serialize_record_batch.html">pyarrow.cuda.serialize_record_batch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.read_record_batch.html">pyarrow.cuda.read_record_batch</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.read_message.html">pyarrow.cuda.read_message</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cuda.IpcMemHandle.html">pyarrow.cuda.IpcMemHandle</a></li>
</ul>
</details></li>
<li class="toctree-l3 has-children"><a class="reference internal" href="../../python/api/misc.html">Miscellaneous</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.cpu_count.html">pyarrow.cpu_count</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.set_cpu_count.html">pyarrow.set_cpu_count</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.io_thread_count.html">pyarrow.io_thread_count</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.set_io_thread_count.html">pyarrow.set_io_thread_count</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.get_include.html">pyarrow.get_include</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.get_libraries.html">pyarrow.get_libraries</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../python/generated/pyarrow.get_library_dirs.html">pyarrow.get_library_dirs</a></li>
</ul>
</details></li>
</ul>
</details></li>
<li class="toctree-l2"><a class="reference internal" href="../../python/getting_involved.html">Getting Involved</a></li>
<li class="toctree-l2"><a class="reference external" href="https://arrow.apache.org/cookbook/py/">Python cookbook</a></li>
</ul>
</details></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/docs/r">R</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">Ruby</a></li>
<li class="toctree-l1"><a class="reference external" href="https://docs.rs/crate/arrow/">Rust</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/swift/">Swift</a></li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/nanoarrow/">nanoarrow</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../status.html">Implementation Status</a></li>
</ul>
</div>
</nav></div>
</div>
<div class="sidebar-primary-items__end sidebar-primary__section">
<div class="sidebar-primary-item">
<div id="ethical-ad-placement"
class="flat"
data-ea-publisher="readthedocs"
data-ea-type="readthedocs-sidebar"
data-ea-manual="true">
</div></div>
</div>
</div>
<main id="main-content" class="bd-main" role="main">
<div class="bd-content">
<div class="bd-article-container">
<div class="bd-header-article d-print-none">
<div class="header-article-items header-article__inner">
<div class="header-article-items__start">
<div class="header-article-item">
<nav aria-label="Breadcrumb" class="d-print-none">
<ul class="bd-breadcrumbs">
<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"><a href="../../implementations.html" class="nav-link">Implementations</a></li>
<li class="breadcrumb-item"><a href="../index.html" class="nav-link">C++ Implementation</a></li>
<li class="breadcrumb-item"><a href="../user_guide.html" class="nav-link">User Guide</a></li>
<li class="breadcrumb-item"><a href="../gandiva.html" class="nav-link">The Gandiva Expression Compiler</a></li>
<li class="breadcrumb-item active" aria-current="page"><span class="ellipsis">Gandiva External Functions Development Guide</span></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="gandiva-external-functions-development-guide">
<h1>Gandiva External Functions Development Guide<a class="headerlink" href="#gandiva-external-functions-development-guide" title="Link to this heading">#</a></h1>
<section id="introduction">
<h2>Introduction<a class="headerlink" href="#introduction" title="Link to this heading">#</a></h2>
<p>Gandiva, as an analytical expression compiler framework, extends its functionality through external functions. This guide is focused on helping developers understand, create, and integrate external functions into Gandiva. External functions are user-defined, third-party functions that can be used in Gandiva expressions.</p>
</section>
<section id="overview-of-external-function-types-in-gandiva">
<h2>Overview of External Function Types in Gandiva<a class="headerlink" href="#overview-of-external-function-types-in-gandiva" title="Link to this heading">#</a></h2>
<p>Gandiva supports two primary types of external functions:</p>
<ul class="simple">
<li><p>C Functions: Functions conforming to the C calling convention. Developers can implement functions in various languages (like C++, Rust, C, or Zig) and expose them as C functions to Gandiva.</p></li>
<li><p>IR Functions: Functions implemented in LLVM Intermediate Representation (LLVM IR). These can be written in multiple languages and then compiled into LLVM IR to be registered in Gandiva.</p></li>
</ul>
<section id="choosing-the-right-type-of-external-function-for-your-needs">
<h3>Choosing the Right Type of External Function for Your Needs<a class="headerlink" href="#choosing-the-right-type-of-external-function-for-your-needs" title="Link to this heading">#</a></h3>
<p>When integrating external functions into Gandiva, it’s crucial to select the type that best fits your specific requirements. Here are the key distinctions between C Functions and IR Functions to guide your decision:</p>
<ul class="simple">
<li><dl class="simple">
<dt>C Functions</dt><dd><ul>
<li><p><strong>Language Flexibility:</strong> C functions offer the flexibility to implement your logic in a preferred programming language and subsequently expose them as C functions.</p></li>
<li><p><strong>Broad Applicability:</strong> They are generally a go-to choice for a wide range of use cases due to their compatibility and ease of integration.</p></li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>IR Functions</dt><dd><ul>
<li><p><strong>Recommended Use Cases:</strong> IR functions excel in handling straightforward tasks that do not require elaborate logic or dependence on sophisticated third-party libraries. Unlike C functions, IR functions have the advantage of being inlinable, which is particularly beneficial for simple operations where the invocation overhead constitutes a significant expense. Additionally, they are an ideal choice for projects that are already integrated with the LLVM toolchain.</p></li>
<li><p><strong>IR Compilation Requirement:</strong> For IR functions, the entire implementation, including any third-party libraries used, must be compiled into LLVM IR. This might affect performance, especially if the dependent libraries are complex.</p></li>
<li><p><strong>Limitations in Capabilities:</strong> Certain advanced features, such as using thread-local variables, are not supported in IR functions. This is due to the limitations of the current JIT (Just-In-Time) engine utilized internally by Gandiva.</p></li>
</ul>
</dd>
</dl>
</li>
</ul>
<img alt="External C functions and IR functions integrating with Gandiva" src="../../_images/external_func.png" />
</section>
</section>
<section id="external-function-registration">
<h2>External function registration<a class="headerlink" href="#external-function-registration" title="Link to this heading">#</a></h2>
<p>To make a function available to Gandiva, you need to register it as an external function, providing both a function’s metadata and its implementation to Gandiva.</p>
<section id="metadata-registration-using-the-nativefunction-class">
<h3>Metadata Registration Using the <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> Class<a class="headerlink" href="#metadata-registration-using-the-nativefunction-class" title="Link to this heading">#</a></h3>
<p>To register a function in Gandiva, use the <code class="docutils literal notranslate"><span class="pre">gandiva::NativeFunction</span></code> class. This class captures both the signature and metadata of the external function.</p>
<p>Constructor Details for <code class="docutils literal notranslate"><span class="pre">gandiva::NativeFunction</span></code>:</p>
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="n">NativeFunction</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">base_name</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&gt;&amp;</span><span class="w"> </span><span class="n">aliases</span><span class="p">,</span>
<span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">DataTypeVector</span><span class="o">&amp;</span><span class="w"> </span><span class="n">param_types</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">DataTypePtr</span><span class="o">&amp;</span><span class="w"> </span><span class="n">ret_type</span><span class="p">,</span>
<span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">ResultNullableType</span><span class="o">&amp;</span><span class="w"> </span><span class="n">result_nullable_type</span><span class="p">,</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="w"> </span><span class="n">pc_name</span><span class="p">,</span>
<span class="w"> </span><span class="kt">int32_t</span><span class="w"> </span><span class="n">flags</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> class is used to define the metadata for an external function. Here is a breakdown of its constructor parameters:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">base_name</span></code>: The name of the function as it will be used in expressions.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">aliases</span></code>: A list of alternative names for the function.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">param_types</span></code>: A vector of <code class="docutils literal notranslate"><span class="pre">arrow::DataType</span></code> objects representing the types of the parameters that the function accepts.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ret_type</span></code>: A <code class="docutils literal notranslate"><span class="pre">std::shared_ptr&lt;arrow::DataType&gt;</span></code> representing the return type of the function.</p></li>
<li><dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">result_nullable_type</span></code>: This parameter indicates whether the result can be null, based on the nullability of the input arguments. It can take one of the following values:</dt><dd><ul>
<li><p><code class="docutils literal notranslate"><span class="pre">ResultNullableType::kResultNullIfNull</span></code>: result validity is an intersection of the validity of the children.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ResultNullableType::kResultNullNever</span></code>: result is always valid.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ResultNullableType::kResultNullInternal</span></code>: result validity depends on some internal logic.</p></li>
</ul>
</dd>
</dl>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">pc_name</span></code>: The name of the corresponding precompiled function.
* Typically, this name follows the convention <code class="docutils literal notranslate"><span class="pre">{base_name}</span></code> + <code class="docutils literal notranslate"><span class="pre">_{param1_type}</span></code> + <code class="docutils literal notranslate"><span class="pre">{param2_type}</span></code> + … + <code class="docutils literal notranslate"><span class="pre">{paramN_type}</span></code>. For example, if the base name is <code class="docutils literal notranslate"><span class="pre">add</span></code> and the function takes two <code class="docutils literal notranslate"><span class="pre">int32</span></code> parameters and returns an <code class="docutils literal notranslate"><span class="pre">int32</span></code>, the precompiled function name would be <code class="docutils literal notranslate"><span class="pre">add_int32_int32</span></code>, but this convention is not mandatory as long as you can guarantee its uniqueness.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">flags</span></code>: Optional flags for additional function attributes (default is 0). Please check out <code class="docutils literal notranslate"><span class="pre">NativeFunction::kNeedsContext</span></code>, <code class="docutils literal notranslate"><span class="pre">NativeFunction::kNeedsFunctionHolder</span></code>, and <code class="docutils literal notranslate"><span class="pre">NativeFunction::kCanReturnErrors</span></code> for more details.</p></li>
</ul>
<p>After the function is registered, its implementation needs to be provided via either a C function pointer or a LLVM IR function.</p>
</section>
<section id="external-c-functions">
<h3>External C functions<a class="headerlink" href="#external-c-functions" title="Link to this heading">#</a></h3>
<p>External C functions can be authored in different languages and exposed as C functions. Compatibility with Gandiva’s type system is crucial.</p>
<section id="c-function-signature">
<h4>C Function Signature<a class="headerlink" href="#c-function-signature" title="Link to this heading">#</a></h4>
<section id="signature-mapping">
<h5>Signature Mapping<a class="headerlink" href="#signature-mapping" title="Link to this heading">#</a></h5>
<p>Not all Arrow data types are supported in Gandiva. The following table lists the mapping between Gandiva external function signature types and the C function signature types:</p>
<div class="pst-scrollable-table-container"><table class="table">
<thead>
<tr class="row-odd"><th class="head"><p>Gandiva type (arrow data type)</p></th>
<th class="head"><p>C function type</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>int8</p></td>
<td><p>int8_t</p></td>
</tr>
<tr class="row-odd"><td><p>int16</p></td>
<td><p>int16_t</p></td>
</tr>
<tr class="row-even"><td><p>int32</p></td>
<td><p>int32_t</p></td>
</tr>
<tr class="row-odd"><td><p>int64</p></td>
<td><p>int64_t</p></td>
</tr>
<tr class="row-even"><td><p>uint8</p></td>
<td><p>uint8_t</p></td>
</tr>
<tr class="row-odd"><td><p>uint16</p></td>
<td><p>uint16_t</p></td>
</tr>
<tr class="row-even"><td><p>uint32</p></td>
<td><p>uint32_t</p></td>
</tr>
<tr class="row-odd"><td><p>uint64</p></td>
<td><p>uint64_t</p></td>
</tr>
<tr class="row-even"><td><p>float32</p></td>
<td><p>float</p></td>
</tr>
<tr class="row-odd"><td><p>float64</p></td>
<td><p>double</p></td>
</tr>
<tr class="row-even"><td><p>boolean</p></td>
<td><p>bool</p></td>
</tr>
<tr class="row-odd"><td><p>date32</p></td>
<td><p>int32_t</p></td>
</tr>
<tr class="row-even"><td><p>date64</p></td>
<td><p>int64_t</p></td>
</tr>
<tr class="row-odd"><td><p>timestamp</p></td>
<td><p>int64_t</p></td>
</tr>
<tr class="row-even"><td><p>time32</p></td>
<td><p>int32_t</p></td>
</tr>
<tr class="row-odd"><td><p>time64</p></td>
<td><p>int64_t</p></td>
</tr>
<tr class="row-even"><td><p>interval_month</p></td>
<td><p>int32_t</p></td>
</tr>
<tr class="row-odd"><td><p>interval_day_time</p></td>
<td><p>int64_t</p></td>
</tr>
<tr class="row-even"><td><p>utf8 (as parameter type)</p></td>
<td><p>const char*,
uint32_t
[see next section]</p></td>
</tr>
<tr class="row-odd"><td><p>utf8 (as return type)</p></td>
<td><p>int64_t context,
const char*,
uint32_t*
[see next section]</p></td>
</tr>
<tr class="row-even"><td><p>binary (as parameter type)</p></td>
<td><p>const char*,
uint32_t
[see next section]</p></td>
</tr>
<tr class="row-odd"><td><p>utf8 (as return type)</p></td>
<td><p>int64_t context,
const char*,
uint32_t*
[see next section]</p></td>
</tr>
</tbody>
</table>
</div>
</section>
<section id="handling-arrow-stringtype-utf8-type-and-arrow-binarytype">
<h5>Handling arrow::StringType (utf8 type) and arrow::BinaryType<a class="headerlink" href="#handling-arrow-stringtype-utf8-type-and-arrow-binarytype" title="Link to this heading">#</a></h5>
<p>Both <code class="docutils literal notranslate"><span class="pre">arrow::StringType</span></code> and <code class="docutils literal notranslate"><span class="pre">arrow::BinaryType</span></code> are variable-length types. And they are handled similarly in external functions. Since <code class="docutils literal notranslate"><span class="pre">arrow::StringType</span></code> (utf8 type) is more commonly used, we will use it below as the example to explain how to handle variable-length types in external functions.</p>
<p>Using <code class="docutils literal notranslate"><span class="pre">arrow::StringType</span></code> (also known as the <code class="docutils literal notranslate"><span class="pre">utf8</span></code> type) as function parameter or return value needs special handling in external functions. This section provides details on how to handle <code class="docutils literal notranslate"><span class="pre">arrow::StringType</span></code>.</p>
<p><strong>As a Parameter:</strong></p>
<p>When <code class="docutils literal notranslate"><span class="pre">arrow::StringType</span></code> is used as a parameter type in a function signature, the corresponding C function should be defined to accept two parameters:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char*</span></code>: This parameter serves as a pointer to the string data.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>: This parameter represents the length of the string data.</p></li>
</ul>
<p><strong>As a Return Type:</strong></p>
<p>When <code class="docutils literal notranslate"><span class="pre">arrow::StringType</span></code> (<code class="docutils literal notranslate"><span class="pre">utf8</span></code> type) is used as the return type in a function signature, several specific considerations apply:</p>
<ol class="arabic simple">
<li><p><strong>NativeFunction Metadata Flag:</strong>
* The <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> metadata for this function must include the <code class="docutils literal notranslate"><span class="pre">NativeFunction::kNeedsContext</span></code> flag. This flag is critical for ensuring proper context management in the function.</p></li>
<li><dl class="simple">
<dt><strong>Function Parameters:</strong></dt><dd><ul class="simple">
<li><p><strong>Context Parameter</strong>: The C function should begin with an additional parameter, <code class="docutils literal notranslate"><span class="pre">int64_t</span> <span class="pre">context</span></code>. This parameter is crucial for context management within the function.</p></li>
<li><p><strong>String Length Output Parameter</strong>: The function should also include a <code class="docutils literal notranslate"><span class="pre">uint32_t*</span></code> parameter at the end. This output parameter will store the length of the returned string data.</p></li>
</ul>
</dd>
</dl>
</li>
<li><p><strong>Return Value</strong>: The function should return a <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char*</span></code> pointer, pointing to the string data.</p></li>
<li><p><strong>Function Implementation:</strong>
* <strong>Memory Allocation and Error Messaging:</strong> Within the function’s implementation, use <code class="docutils literal notranslate"><span class="pre">gdv_fn_context_arena_malloc</span></code> and <code class="docutils literal notranslate"><span class="pre">gdv_fn_context_set_error_msg</span></code> for memory allocation and error messaging, respectively. Both functions take <code class="docutils literal notranslate"><span class="pre">int64_t</span> <span class="pre">context</span></code> as their first parameter, facilitating efficient context utilization.</p></li>
</ol>
</section>
</section>
</section>
<section id="external-c-function-registration-apis">
<h3>External C function registration APIs<a class="headerlink" href="#external-c-function-registration-apis" title="Link to this heading">#</a></h3>
<p>You can use <code class="docutils literal notranslate"><span class="pre">gandiva::FunctionRegistry</span></code>’s APIs to register external C functions:</p>
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="c1">/// \brief register a C function into the function registry</span>
<span class="c1">/// @param func the registered function&#39;s metadata</span>
<span class="c1">/// @param c_function_ptr the function pointer to the</span>
<span class="c1">/// registered function&#39;s implementation</span>
<span class="c1">/// @param function_holder_maker this will be used as the function holder if the</span>
<span class="c1">/// function requires a function holder</span>
<span class="n">arrow</span><span class="o">::</span><span class="n">Status</span><span class="w"> </span><span class="nf">Register</span><span class="p">(</span>
<span class="w"> </span><span class="n">NativeFunction</span><span class="w"> </span><span class="n">func</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="o">*</span><span class="w"> </span><span class="n">c_function_ptr</span><span class="p">,</span>
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">optional</span><span class="o">&lt;</span><span class="n">FunctionHolderMaker</span><span class="o">&gt;</span><span class="w"> </span><span class="n">function_holder_maker</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">nullopt</span><span class="p">);</span>
</pre></div>
</div>
<p>The above API allows you to register an external C function.</p>
<ul class="simple">
<li><p>The <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> object describes the metadata of the external C function.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">c_function_ptr</span></code> is the function pointer to the external C function’s implementation.</p></li>
<li><p>The optional <code class="docutils literal notranslate"><span class="pre">function_holder_maker</span></code> is used to create a function holder for the external C function if the external C function requires a function holder. Check out the <code class="docutils literal notranslate"><span class="pre">gandiva::FunctionHolder</span></code> class and its several sub-classes for more details.</p></li>
</ul>
</section>
<section id="external-ir-functions">
<h3>External IR functions<a class="headerlink" href="#external-ir-functions" title="Link to this heading">#</a></h3>
<section id="ir-function-implementation">
<h4>IR function implementation<a class="headerlink" href="#ir-function-implementation" title="Link to this heading">#</a></h4>
<p>Gandiva’s support for IR (Intermediate Representation) functions provides the flexibility to implement these functions in various programming languages, depending on your specific needs.</p>
<section id="examples-and-tools-for-compilation">
<h5>Examples and Tools for Compilation<a class="headerlink" href="#examples-and-tools-for-compilation" title="Link to this heading">#</a></h5>
<ol class="arabic simple">
<li><p><strong>Using C++ or C:</strong></p>
<ul class="simple">
<li><p>If your IR functions are implemented in C++ or C, they can be compiled into LLVM bitcode, which is the intermediate representation understood by Gandiva.</p></li>
<li><p>Compilation with Clang: For C++ implementations, you can utilize clang with the <code class="docutils literal notranslate"><span class="pre">-emit-llvm</span></code> option. This approach compiles your IR functions directly into LLVM bitcode, making them ready for integration with Gandiva.</p></li>
</ul>
</li>
<li><p><strong>Integrating with CMake:</strong></p>
<ul class="simple">
<li><p>In projects where C++ is used alongside CMake, consider leveraging the <code class="docutils literal notranslate"><span class="pre">GandivaAddBitcode.cmake</span></code> module from the Arrow repository. This module can streamline the process of adding your custom bitcode to Gandiva.</p></li>
</ul>
</li>
</ol>
</section>
<section id="consistency-in-parameter-and-return-types">
<h5>Consistency in Parameter and Return Types<a class="headerlink" href="#consistency-in-parameter-and-return-types" title="Link to this heading">#</a></h5>
<p>It is important to maintain consistency with the parameter and return types as established in C functions. Adhering to the rules discussed in the previous section ensures compatibility with Gandiva’s type system.</p>
</section>
</section>
<section id="registering-external-ir-functions-in-gandiva">
<h4>Registering External IR Functions in Gandiva<a class="headerlink" href="#registering-external-ir-functions-in-gandiva" title="Link to this heading">#</a></h4>
<ol class="arabic">
<li><p><strong>Post-Implementation and Compilation:</strong></p>
<p>After successfully implementing and compiling your IR functions into LLVM bitcode, the next critical step is their registration within Gandiva.</p>
</li>
<li><p><strong>Utilizing Gandiva’s FunctionRegistry APIs:</strong></p>
<p>Gandiva offers specific APIs within the <code class="docutils literal notranslate"><span class="pre">gandiva::FunctionRegistry</span></code> class to facilitate this registration process.</p>
<p><strong>Registration APIs</strong></p>
<ul>
<li><p>Registering from a Bitcode File:</p>
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="c1">// Registers a set of functions from a specified bitcode file</span>
<span class="n">arrow</span><span class="o">::</span><span class="n">Status</span><span class="w"> </span><span class="nf">Register</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">NativeFunction</span><span class="o">&gt;&amp;</span><span class="w"> </span><span class="n">funcs</span><span class="p">,</span>
<span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="o">&amp;</span><span class="w"> </span><span class="n">bitcode_path</span><span class="p">);</span>
</pre></div>
</div>
</li>
<li><p>Registering from a Bitcode Buffer:</p>
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="c1">// Registers a set of functions from a bitcode buffer</span>
<span class="n">arrow</span><span class="o">::</span><span class="n">Status</span><span class="w"> </span><span class="nf">Register</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">NativeFunction</span><span class="o">&gt;&amp;</span><span class="w"> </span><span class="n">funcs</span><span class="p">,</span>
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o">&lt;</span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">&gt;</span><span class="w"> </span><span class="n">bitcode_buffer</span><span class="p">);</span>
</pre></div>
</div>
</li>
</ul>
<p><strong>Key Points</strong></p>
<ul class="simple">
<li><p>These APIs are designed to register a collection of external IR functions, either from a specified bitcode file or a preloaded bitcode buffer.</p></li>
<li><p>It is essential to ensure that the bitcode file or buffer contains the correctly compiled IR functions.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> instances play a crucial role in this process, serving to define the metadata for each of the external IR functions being registered.</p></li>
</ul>
</li>
</ol>
</section>
</section>
</section>
<section id="conclusion">
<h2>Conclusion<a class="headerlink" href="#conclusion" title="Link to this heading">#</a></h2>
<p>This guide provides an overview and detailed steps for integrating external functions into Gandiva. It covers both C and IR functions, and their registration in Gandiva. For more complex scenarios, refer to Gandiva’s documentation and example implementations in source code.</p>
</section>
</section>
</article>
<footer class="prev-next-footer d-print-none">
<div class="prev-next-area">
<a class="left-prev"
href="expr_projector_filter.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">Gandiva Expression, Projector, and Filter</p>
</div>
</a>
<a class="right-next"
href="../acero.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Acero: A C++ streaming execution engine</p>
</div>
<i class="fa-solid fa-angle-right"></i>
</a>
</div>
</footer>
</div>
<dialog id="pst-secondary-sidebar-modal"></dialog>
<div id="pst-secondary-sidebar" class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
<div class="sidebar-secondary-item">
<div
id="pst-page-navigation-heading-2"
class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> On this page
</div>
<nav id="pst-page-toc-nav" class="page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="pst-show_toc_level nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#introduction">Introduction</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#overview-of-external-function-types-in-gandiva">Overview of External Function Types in Gandiva</a><ul class="pst-show_toc_level nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#choosing-the-right-type-of-external-function-for-your-needs">Choosing the Right Type of External Function for Your Needs</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#external-function-registration">External function registration</a><ul class="pst-show_toc_level nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#metadata-registration-using-the-nativefunction-class">Metadata Registration Using the <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> Class</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#external-c-functions">External C functions</a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#c-function-signature">C Function Signature</a><ul class="nav section-nav flex-column">
<li class="toc-h5 nav-item toc-entry"><a class="reference internal nav-link" href="#signature-mapping">Signature Mapping</a></li>
<li class="toc-h5 nav-item toc-entry"><a class="reference internal nav-link" href="#handling-arrow-stringtype-utf8-type-and-arrow-binarytype">Handling arrow::StringType (utf8 type) and arrow::BinaryType</a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#external-c-function-registration-apis">External C function registration APIs</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#external-ir-functions">External IR functions</a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#ir-function-implementation">IR function implementation</a><ul class="nav section-nav flex-column">
<li class="toc-h5 nav-item toc-entry"><a class="reference internal nav-link" href="#examples-and-tools-for-compilation">Examples and Tools for Compilation</a></li>
<li class="toc-h5 nav-item toc-entry"><a class="reference internal nav-link" href="#consistency-in-parameter-and-return-types">Consistency in Parameter and Return Types</a></li>
</ul>
</li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#registering-external-ir-functions-in-gandiva">Registering External IR Functions in Gandiva</a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#conclusion">Conclusion</a></li>
</ul>
</nav></div>
<div class="sidebar-secondary-item">
<div class="tocsection editthispage">
<a href="https://github.com/apache/arrow/edit/main/docs/source/cpp/gandiva/external_func.rst">
<i class="fa-solid fa-pencil"></i>
Edit on GitHub
</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 defer src="../../_static/scripts/bootstrap.js?digest=7f76b32a3354e82990f2"></script>
<script defer src="../../_static/scripts/pydata-sphinx-theme.js?digest=7f76b32a3354e82990f2"></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 2016-2026 Apache Software Foundation.
Apache Arrow, Arrow, Apache, the Apache logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
<br/>
</p>
</div>
<div class="footer-item">
<p class="sphinx-version">
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
<br/>
</p>
</div>
</div>
<div class="footer-items__end">
<div class="footer-item">
<p class="theme-version">
<!-- # L10n: Setting the PST URL as an argument as this does not need to be localized -->
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.17.0.
</p></div>
</div>
</div>
</footer>
</body>
</html>