| |
| <!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>Memory Management — Apache Arrow v23.0.0.dev41</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=8878045cc6db502f8baf" rel="stylesheet" /> |
| <link href="../_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf" 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 src="../_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf"></script> |
| <!-- Pre-loaded scripts that we'll load fully later --> |
| <link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" /> |
| <link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" /> |
| |
| <script src="../_static/documentation_options.js?v=15295633"></script> |
| <script src="../_static/doctools.js?v=9bcbadda"></script> |
| <script src="../_static/sphinx_highlight.js?v=dc90522c"></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/memory';</script> |
| <script> |
| DOCUMENTATION_OPTIONS.theme_version = '0.16.1'; |
| 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> |
| <link rel="canonical" href="https://arrow.apache.org/docs/cpp/memory.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="Arrays" href="arrays.html" /> |
| <link rel="prev" title="High-Level Overview" href="overview.html" /> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <meta name="docsearch:language" content="en"/> |
| <meta name="docsearch:version" content="23.0.0.dev41" /> |
| |
| <!-- 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-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" 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 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 v23.0.0.dev41 - Home"/> |
| <img src="../_static/arrow-dark.png" class="logo__image only-dark pst-js-only" alt="Apache Arrow v23.0.0.dev41 - 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 "I agree, let's chat", 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 "I agree, let's chat", 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"> |
| <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 current active"><a class="current reference internal" href="#">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 has-children"><a class="reference internal" href="gandiva.html">The Gandiva Expression Compiler</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="gandiva/expr_projector_filter.html">Gandiva Expression, Projector, and Filter</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="gandiva/external_func.html">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="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/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.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.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.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> |
| </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.index.html">pyarrow.compute.index</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.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_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.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_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.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_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.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.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.is_leap_year.html">pyarrow.compute.is_leap_year</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.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.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.partition_nth_indices.html">pyarrow.compute.partition_nth_indices</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.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.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.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.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.JoinOptions.html">pyarrow.compute.JoinOptions</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.ZeroFillOptions.html">pyarrow.compute.ZeroFillOptions</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.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.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.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.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.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.register_scalar_function.html">pyarrow.compute.register_scalar_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.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 internal" href="../python/benchmarks.html">Benchmarks</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://github.com/apache/arrow-swift/blob/main/Arrow/README.md">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 active" aria-current="page"><span class="ellipsis">Memory Management</span></li> |
| </ul> |
| </nav> |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| </div> |
| |
| |
| |
| |
| <div id="searchbox"></div> |
| <article class="bd-article"> |
| |
| <section id="memory-management"> |
| <span id="cpp-memory-management"></span><h1>Memory Management<a class="headerlink" href="#memory-management" title="Link to this heading">#</a></h1> |
| <div class="admonition seealso"> |
| <p class="admonition-title">See also</p> |
| <p><a class="reference internal" href="api/memory.html"><span class="doc">Memory management API reference</span></a></p> |
| </div> |
| <section id="buffers"> |
| <h2>Buffers<a class="headerlink" href="#buffers" title="Link to this heading">#</a></h2> |
| <p>To avoid passing around raw data pointers with varying and non-obvious |
| lifetime rules, Arrow provides a generic abstraction called <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6BufferE" title="arrow::Buffer"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::Buffer</span></code></a>. |
| A Buffer encapsulates a pointer and data size, and generally also ties its |
| lifetime to that of an underlying provider (in other words, a Buffer should |
| <em>always</em> point to valid memory till its destruction). Buffers are untyped: |
| they simply denote a physical memory area regardless of its intended meaning |
| or interpretation.</p> |
| <p>Buffers may be allocated by Arrow itself , or by third-party routines. |
| For example, it is possible to pass the data of a Python bytestring as a Arrow |
| buffer, keeping the Python object alive as necessary.</p> |
| <p>In addition, buffers come in various flavours: mutable or not, resizable or |
| not. Generally, you will hold a mutable buffer when building up a piece |
| of data, then it will be frozen as an immutable container such as an |
| <a class="reference internal" href="arrays.html"><span class="doc">array</span></a>.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>Some buffers may point to non-CPU memory, such as GPU-backed memory |
| provided by a CUDA context. If you’re writing a GPU-aware application, |
| you will need to be careful not to interpret a GPU memory pointer as |
| a CPU-reachable pointer, or vice-versa.</p> |
| </div> |
| <section id="accessing-buffer-memory"> |
| <h3>Accessing Buffer Memory<a class="headerlink" href="#accessing-buffer-memory" title="Link to this heading">#</a></h3> |
| <p>Buffers provide fast access to the underlying memory using the |
| <a class="reference internal" href="api/memory.html#_CPPv4NK5arrow6Buffer4sizeEv" title="arrow::Buffer::size"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">size()</span></code></a> and <a class="reference internal" href="api/memory.html#_CPPv4NK5arrow6Buffer4dataEv" title="arrow::Buffer::data"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">data()</span></code></a> accessors |
| (or <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6Buffer12mutable_dataEv" title="arrow::Buffer::mutable_data"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">mutable_data()</span></code></a> for writable access to a mutable |
| buffer).</p> |
| </section> |
| <section id="slicing"> |
| <h3>Slicing<a class="headerlink" href="#slicing" title="Link to this heading">#</a></h3> |
| <p>It is possible to make zero-copy slices of buffers, to obtain a buffer |
| referring to some contiguous subset of the underlying data. This is done |
| by calling the <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::SliceBuffer()</span></code> and <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::SliceMutableBuffer()</span></code> |
| functions.</p> |
| </section> |
| <section id="allocating-a-buffer"> |
| <h3>Allocating a Buffer<a class="headerlink" href="#allocating-a-buffer" title="Link to this heading">#</a></h3> |
| <p>You can allocate a buffer yourself by calling one of the |
| <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::AllocateBuffer()</span></code> or <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::AllocateResizableBuffer()</span></code> |
| overloads:</p> |
| <div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="n">arrow</span><span class="o">::</span><span class="n">Result</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">unique_ptr</span><span class="o"><</span><span class="n">Buffer</span><span class="o">>></span><span class="w"> </span><span class="n">maybe_buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">arrow</span><span class="o">::</span><span class="n">AllocateBuffer</span><span class="p">(</span><span class="mi">4096</span><span class="p">);</span> |
| <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">maybe_buffer</span><span class="p">.</span><span class="n">ok</span><span class="p">())</span><span class="w"> </span><span class="p">{</span> |
| <span class="w"> </span><span class="c1">// ... handle allocation error</span> |
| <span class="p">}</span> |
| |
| <span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o"><</span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">></span><span class="w"> </span><span class="n">buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">maybe_buffer</span><span class="p">);</span> |
| <span class="kt">uint8_t</span><span class="o">*</span><span class="w"> </span><span class="n">buffer_data</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">buffer</span><span class="o">-></span><span class="n">mutable_data</span><span class="p">();</span> |
| <span class="n">memcpy</span><span class="p">(</span><span class="n">buffer_data</span><span class="p">,</span><span class="w"> </span><span class="s">"hello world"</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p">);</span> |
| </pre></div> |
| </div> |
| <p>Allocating a buffer this way ensures it is 64-bytes aligned and padded |
| as recommended by the <a class="reference internal" href="../format/Layout.html"><span class="doc">Arrow memory specification</span></a>.</p> |
| </section> |
| <section id="building-a-buffer"> |
| <h3>Building a Buffer<a class="headerlink" href="#building-a-buffer" title="Link to this heading">#</a></h3> |
| <p>You can also allocate <em>and</em> build a Buffer incrementally, using the |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow13BufferBuilderE" title="arrow::BufferBuilder"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::BufferBuilder</span></code></a> API:</p> |
| <div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="n">BufferBuilder</span><span class="w"> </span><span class="n">builder</span><span class="p">;</span> |
| <span class="n">builder</span><span class="p">.</span><span class="n">Resize</span><span class="p">(</span><span class="mi">11</span><span class="p">);</span><span class="w"> </span><span class="c1">// reserve enough space for 11 bytes</span> |
| <span class="n">builder</span><span class="p">.</span><span class="n">Append</span><span class="p">(</span><span class="s">"hello "</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">);</span> |
| <span class="n">builder</span><span class="p">.</span><span class="n">Append</span><span class="p">(</span><span class="s">"world"</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">);</span> |
| |
| <span class="k">auto</span><span class="w"> </span><span class="n">maybe_buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">builder</span><span class="p">.</span><span class="n">Finish</span><span class="p">();</span> |
| <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">maybe_buffer</span><span class="p">.</span><span class="n">ok</span><span class="p">())</span><span class="w"> </span><span class="p">{</span> |
| <span class="w"> </span><span class="c1">// ... handle buffer allocation error</span> |
| <span class="p">}</span> |
| <span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o"><</span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">></span><span class="w"> </span><span class="n">buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">maybe_buffer</span><span class="p">;</span> |
| </pre></div> |
| </div> |
| <p>If a Buffer is meant to contain values of a given fixed-width type (for |
| example the 32-bit offsets of a List array), it can be more convenient to |
| use the template <a class="reference internal" href="api/memory.html#_CPPv4I00EN5arrow18TypedBufferBuilderE" title="arrow::TypedBufferBuilder"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::TypedBufferBuilder</span></code></a> API:</p> |
| <div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="n">TypedBufferBuilder</span><span class="o"><</span><span class="kt">int32_t</span><span class="o">></span><span class="w"> </span><span class="n">builder</span><span class="p">;</span> |
| <span class="n">builder</span><span class="p">.</span><span class="n">Reserve</span><span class="p">(</span><span class="mi">2</span><span class="p">);</span><span class="w"> </span><span class="c1">// reserve enough space for two int32_t values</span> |
| <span class="n">builder</span><span class="p">.</span><span class="n">Append</span><span class="p">(</span><span class="mh">0x12345678</span><span class="p">);</span> |
| <span class="n">builder</span><span class="p">.</span><span class="n">Append</span><span class="p">(</span><span class="mh">-0x765643210</span><span class="p">);</span> |
| |
| <span class="k">auto</span><span class="w"> </span><span class="n">maybe_buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">builder</span><span class="p">.</span><span class="n">Finish</span><span class="p">();</span> |
| <span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">maybe_buffer</span><span class="p">.</span><span class="n">ok</span><span class="p">())</span><span class="w"> </span><span class="p">{</span> |
| <span class="w"> </span><span class="c1">// ... handle buffer allocation error</span> |
| <span class="p">}</span> |
| <span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o"><</span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">></span><span class="w"> </span><span class="n">buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">*</span><span class="n">maybe_buffer</span><span class="p">;</span> |
| </pre></div> |
| </div> |
| </section> |
| </section> |
| <section id="memory-pools"> |
| <span id="cpp-memory-pool"></span><h2>Memory Pools<a class="headerlink" href="#memory-pools" title="Link to this heading">#</a></h2> |
| <p>When allocating a Buffer using the Arrow C++ API, the buffer’s underlying |
| memory is allocated by a <a class="reference internal" href="api/memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::MemoryPool</span></code></a> instance. Usually this |
| will be the process-wide <em>default memory pool</em>, but many Arrow APIs allow |
| you to pass another MemoryPool instance for their internal allocations.</p> |
| <p>Memory pools are used for large long-lived data such as array buffers. |
| Other data, such as small C++ objects and temporary workspaces, usually |
| goes through the regular C++ allocators.</p> |
| <section id="default-memory-pool"> |
| <h3>Default Memory Pool<a class="headerlink" href="#default-memory-pool" title="Link to this heading">#</a></h3> |
| <p>The default memory pool depends on how Arrow C++ was compiled:</p> |
| <ul class="simple"> |
| <li><p>if enabled at compile time, a <a class="reference external" href="https://github.com/microsoft/mimalloc">mimalloc</a> |
| heap;</p></li> |
| <li><p>otherwise, if enabled at compile time, a <a class="reference external" href="http://jemalloc.net/">jemalloc</a> heap;</p></li> |
| <li><p>otherwise, the C library <code class="docutils literal notranslate"><span class="pre">malloc</span></code> heap.</p></li> |
| </ul> |
| </section> |
| <section id="overriding-the-default-memory-pool"> |
| <h3>Overriding the Default Memory Pool<a class="headerlink" href="#overriding-the-default-memory-pool" title="Link to this heading">#</a></h3> |
| <p>One can override the above selection algorithm by setting the |
| <span class="target" id="index-0"></span><a class="reference internal" href="env_vars.html#envvar-ARROW_DEFAULT_MEMORY_POOL"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">ARROW_DEFAULT_MEMORY_POOL</span></code></a> environment variable.</p> |
| </section> |
| <section id="stl-integration"> |
| <h3>STL Integration<a class="headerlink" href="#stl-integration" title="Link to this heading">#</a></h3> |
| <p>If you wish to use a Arrow memory pool to allocate the data of STL containers, |
| you can do so using the <a class="reference internal" href="api/memory.html#_CPPv4I0EN5arrow3stl9allocatorE" title="arrow::stl::allocator"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::stl::allocator</span></code></a> wrapper.</p> |
| <p>Conversely, you can also use a STL allocator to allocate Arrow memory, |
| using the <a class="reference internal" href="api/memory.html#_CPPv4I0EN5arrow3stl13STLMemoryPoolE" title="arrow::stl::STLMemoryPool"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::stl::STLMemoryPool</span></code></a> class. However, this may be less |
| performant, as STL allocators don’t provide a resizing operation.</p> |
| </section> |
| </section> |
| <section id="devices"> |
| <h2>Devices<a class="headerlink" href="#devices" title="Link to this heading">#</a></h2> |
| <p>Many Arrow applications only access host (CPU) memory. However, in some cases |
| it is desirable to handle on-device memory (such as on-board memory on a GPU) |
| as well as host memory.</p> |
| <p>Arrow represents the CPU and other devices using the |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6DeviceE" title="arrow::Device"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::Device</span></code></a> abstraction. The associated class <a class="reference internal" href="api/memory.html#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::MemoryManager</span></code></a> |
| specifies how to allocate on a given device. Each device has a default memory manager, but |
| additional instances may be constructed (for example, wrapping a custom |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::MemoryPool</span></code></a> the CPU). |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow13MemoryManagerE" title="arrow::MemoryManager"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::MemoryManager</span></code></a> instances which specify how to allocate |
| memory on a given device (for example, using a particular |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow10MemoryPoolE" title="arrow::MemoryPool"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">arrow::MemoryPool</span></code></a> on the CPU).</p> |
| <section id="device-agnostic-programming"> |
| <h3>Device-Agnostic Programming<a class="headerlink" href="#device-agnostic-programming" title="Link to this heading">#</a></h3> |
| <p>If you receive a Buffer from third-party code, you can query whether it is |
| CPU-readable by calling its <a class="reference internal" href="api/memory.html#_CPPv4NK5arrow6Buffer6is_cpuEv" title="arrow::Buffer::is_cpu"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">is_cpu()</span></code></a> method.</p> |
| <p>You can also view the Buffer on a given device, in a generic way, by calling |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6Buffer4ViewENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="arrow::Buffer::View"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::Buffer::View()</span></code></a> or <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6Buffer10ViewOrCopyENSt10shared_ptrI6BufferEERKNSt10shared_ptrI13MemoryManagerEE" title="arrow::Buffer::ViewOrCopy"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::Buffer::ViewOrCopy()</span></code></a>. This will |
| be a no-operation if the source and destination devices are identical. |
| Otherwise, a device-dependent mechanism will attempt to construct a memory |
| address for the destination device that gives access to the buffer contents. |
| Actual device-to-device transfer may happen lazily, when reading the buffer |
| contents.</p> |
| <p>Similarly, if you want to do I/O on a buffer without assuming a CPU-readable |
| buffer, you can call <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6Buffer9GetReaderENSt10shared_ptrI6BufferEE" title="arrow::Buffer::GetReader"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::Buffer::GetReader()</span></code></a> and |
| <a class="reference internal" href="api/memory.html#_CPPv4N5arrow6Buffer9GetWriterENSt10shared_ptrI6BufferEE" title="arrow::Buffer::GetWriter"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">arrow::Buffer::GetWriter()</span></code></a>.</p> |
| <p>For example, to get an on-CPU view or copy of an arbitrary buffer, you can |
| simply do:</p> |
| <div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o"><</span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">></span><span class="w"> </span><span class="n">arbitrary_buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">;</span> |
| <span class="n">std</span><span class="o">::</span><span class="n">shared_ptr</span><span class="o"><</span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">></span><span class="w"> </span><span class="n">cpu_buffer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">arrow</span><span class="o">::</span><span class="n">Buffer</span><span class="o">::</span><span class="n">ViewOrCopy</span><span class="p">(</span> |
| <span class="w"> </span><span class="n">arbitrary_buffer</span><span class="p">,</span><span class="w"> </span><span class="n">arrow</span><span class="o">::</span><span class="n">default_cpu_memory_manager</span><span class="p">());</span> |
| </pre></div> |
| </div> |
| </section> |
| </section> |
| <section id="memory-profiling"> |
| <h2>Memory Profiling<a class="headerlink" href="#memory-profiling" title="Link to this heading">#</a></h2> |
| <p>On Linux, detailed profiles of memory allocations can be generated using |
| <code class="docutils literal notranslate"><span class="pre">perf</span> <span class="pre">record</span></code>, without any need to modify the binaries. These profiles can |
| show the traceback in addition to allocation size. This does require debug |
| symbols, from either a debug build or a release with debug symbols build.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>If you are profiling Arrow’s tests on another platform, you can run the |
| following Docker container using Archery to access a Linux environment:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>archery<span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>ubuntu-cpp<span class="w"> </span>bash |
| <span class="c1"># Inside the Docker container...</span> |
| /arrow/ci/scripts/cpp_build.sh<span class="w"> </span>/arrow<span class="w"> </span>/build |
| <span class="nb">cd</span><span class="w"> </span>build/cpp/debug |
| ./arrow-array-test<span class="w"> </span><span class="c1"># Run a test</span> |
| apt-get<span class="w"> </span>update |
| apt-get<span class="w"> </span>install<span class="w"> </span>-y<span class="w"> </span>linux-tools-generic |
| <span class="nb">alias</span><span class="w"> </span><span class="nv">perf</span><span class="o">=</span>/usr/lib/linux-tools/<version-path>/perf |
| </pre></div> |
| </div> |
| </div> |
| <p>To track allocations, create probe points on each of the allocator methods used. |
| Collecting <code class="docutils literal notranslate"><span class="pre">$params</span></code> allows us to record the size of the allocations |
| requested, while collecting <code class="docutils literal notranslate"><span class="pre">$retval</span></code> allows us to record the address of |
| recorded allocations, so we can correlate them with the call to free/de-allocate.</p> |
| <div class="sd-tab-set docutils"> |
| <input checked="checked" id="sd-tab-item-0" name="sd-tab-set-0" type="radio"> |
| <label class="sd-tab-label" for="sd-tab-item-0"> |
| jemalloc</label><div class="sd-tab-content docutils"> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>je_arrow_mallocx<span class="w"> </span><span class="s1">'$params'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>je_arrow_mallocx%return<span class="w"> </span><span class="s1">'$retval'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>je_arrow_rallocx<span class="w"> </span><span class="s1">'$params'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>je_arrow_rallocx%return<span class="w"> </span><span class="s1">'$retval'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>je_arrow_dallocx<span class="w"> </span><span class="s1">'$params'</span> |
| <span class="nv">PROBE_ARGS</span><span class="o">=</span><span class="s2">"-e probe_libarrow:je_arrow_mallocx \</span> |
| <span class="s2"> -e probe_libarrow:je_arrow_mallocx__return \</span> |
| <span class="s2"> -e probe_libarrow:je_arrow_rallocx \</span> |
| <span class="s2"> -e probe_libarrow:je_arrow_rallocx__return \</span> |
| <span class="s2"> -e probe_libarrow:je_arrow_dallocx"</span> |
| </pre></div> |
| </div> |
| </div> |
| <input id="sd-tab-item-1" name="sd-tab-set-0" type="radio"> |
| <label class="sd-tab-label" for="sd-tab-item-1"> |
| mimalloc</label><div class="sd-tab-content docutils"> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>mi_malloc_aligned<span class="w"> </span><span class="s1">'$params'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>mi_malloc_aligned%return<span class="w"> </span><span class="s1">'$retval'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>mi_realloc_aligned<span class="w"> </span><span class="s1">'$params'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>mi_realloc_aligned%return<span class="w"> </span><span class="s1">'$retval'</span> |
| perf<span class="w"> </span>probe<span class="w"> </span>-x<span class="w"> </span>libarrow.so<span class="w"> </span>mi_free<span class="w"> </span><span class="s1">'$params'</span> |
| <span class="nv">PROBE_ARGS</span><span class="o">=</span><span class="s2">"-e probe_libarrow:mi_malloc_aligned \</span> |
| <span class="s2"> -e probe_libarrow:mi_malloc_aligned__return \</span> |
| <span class="s2"> -e probe_libarrow:mi_realloc_aligned \</span> |
| <span class="s2"> -e probe_libarrow:mi_realloc_aligned__return \</span> |
| <span class="s2"> -e probe_libarrow:mi_free"</span> |
| </pre></div> |
| </div> |
| </div> |
| </div> |
| <p>Once probes have been set, you can record calls with associated tracebacks using |
| <code class="docutils literal notranslate"><span class="pre">perf</span> <span class="pre">record</span></code>. In this example, we are running the StructArray unit tests in |
| Arrow:</p> |
| <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>perf<span class="w"> </span>record<span class="w"> </span>-g<span class="w"> </span>--call-graph<span class="w"> </span>dwarf<span class="w"> </span><span class="se">\</span> |
| <span class="w"> </span><span class="nv">$PROBE_ARGS</span><span class="w"> </span><span class="se">\</span> |
| <span class="w"> </span>./arrow-array-test<span class="w"> </span>--gtest_filter<span class="o">=</span>StructArray* |
| </pre></div> |
| </div> |
| <p>If you want to profile a running process, you can run <code class="docutils literal notranslate"><span class="pre">perf</span> <span class="pre">record</span> <span class="pre">-p</span> <span class="pre"><PID></span></code> |
| and it will record until you interrupt with CTRL+C. Alternatively, you can do |
| <code class="docutils literal notranslate"><span class="pre">perf</span> <span class="pre">record</span> <span class="pre">-P</span> <span class="pre"><PID></span> <span class="pre">sleep</span> <span class="pre">10</span></code> to record for 10 seconds.</p> |
| <p>The resulting data can be processed with standard tools to work with perf or |
| <code class="docutils literal notranslate"><span class="pre">perf</span> <span class="pre">script</span></code> can be used to pipe a text format of the data to custom scripts. |
| The following script parses <code class="docutils literal notranslate"><span class="pre">perf</span> <span class="pre">script</span></code> output and prints the output in |
| new lines delimited JSON for easier processing.</p> |
| <div class="literal-block-wrapper docutils container" id="id1"> |
| <div class="code-block-caption"><span class="caption-text">process_perf_events.py</span><a class="headerlink" href="#id1" title="Link to this code">#</a></div> |
| <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> |
| <span class="kn">import</span><span class="w"> </span><span class="nn">re</span> |
| <span class="kn">import</span><span class="w"> </span><span class="nn">json</span> |
| |
| <span class="c1"># Example non-traceback line</span> |
| <span class="c1"># arrow-array-tes 14344 [003] 7501.073802: probe_libarrow:je_arrow_mallocx: (7fbcd20bb640) size=0x80 flags=6</span> |
| |
| <span class="n">current</span> <span class="o">=</span> <span class="p">{}</span> |
| <span class="n">current_traceback</span> <span class="o">=</span> <span class="s1">''</span> |
| |
| <span class="k">def</span><span class="w"> </span><span class="nf">new_row</span><span class="p">():</span> |
| <span class="k">global</span> <span class="n">current_traceback</span> |
| <span class="n">current</span><span class="p">[</span><span class="s1">'traceback'</span><span class="p">]</span> <span class="o">=</span> <span class="n">current_traceback</span> |
| <span class="nb">print</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">current</span><span class="p">))</span> |
| <span class="n">current_traceback</span> <span class="o">=</span> <span class="s1">''</span> |
| |
| <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span class="p">:</span> |
| <span class="k">if</span> <span class="n">line</span> <span class="o">==</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">:</span> |
| <span class="k">continue</span> |
| <span class="k">elif</span> <span class="n">line</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'</span><span class="se">\t</span><span class="s1">'</span><span class="p">:</span> |
| <span class="c1"># traceback line</span> |
| <span class="n">current_traceback</span> <span class="o">+=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">)</span> |
| <span class="k">else</span><span class="p">:</span> |
| <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> |
| <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">current</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
| <span class="n">new_row</span><span class="p">()</span> |
| <span class="n">parts</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s1">' +'</span><span class="p">,</span> <span class="s1">' '</span><span class="p">,</span> <span class="n">line</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">' '</span><span class="p">)</span> |
| |
| <span class="n">parts</span><span class="o">.</span><span class="n">reverse</span><span class="p">()</span> |
| <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> <span class="c1"># file</span> |
| <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> <span class="c1"># "14344"</span> |
| <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> <span class="c1"># "[003]"</span> |
| |
| <span class="n">current</span><span class="p">[</span><span class="s1">'time'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s2">":"</span><span class="p">))</span> |
| <span class="n">current</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">=</span> <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s2">":"</span><span class="p">)</span> |
| |
| <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> <span class="c1"># (7fbcd20bddf0)</span> |
| <span class="k">if</span> <span class="n">parts</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"<-"</span><span class="p">:</span> |
| <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> |
| <span class="n">parts</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> |
| |
| <span class="n">params</span> <span class="o">=</span> <span class="p">{}</span> |
| |
| <span class="k">for</span> <span class="n">pair</span> <span class="ow">in</span> <span class="n">parts</span><span class="p">:</span> |
| <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="o">=</span> <span class="n">pair</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"="</span><span class="p">)</span> |
| <span class="n">params</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span> |
| |
| <span class="n">current</span><span class="p">[</span><span class="s1">'params'</span><span class="p">]</span> <span class="o">=</span> <span class="n">params</span> |
| </pre></div> |
| </div> |
| </div> |
| <p>Here’s an example invocation of that script, with a preview of output data:</p> |
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>perf<span class="w"> </span>script<span class="w"> </span><span class="p">|</span><span class="w"> </span>python3<span class="w"> </span>/arrow/process_perf_events.py<span class="w"> </span>><span class="w"> </span>processed_events.jsonl |
| <span class="gp">$ </span>head<span class="w"> </span>processed_events.jsonl<span class="w"> </span><span class="p">|</span><span class="w"> </span>cut<span class="w"> </span>-c<span class="w"> </span>-120 |
| <span class="go">{"time": 14814.954378, "event": "probe_libarrow:je_arrow_mallocx", "params": {"flags": "6", "size": "0x80"}, "traceback"</span> |
| <span class="go">{"time": 14814.95443, "event": "probe_libarrow:je_arrow_mallocx__return", "params": {"arg1": "0x7f4a97e09000"}, "traceba</span> |
| <span class="go">{"time": 14814.95448, "event": "probe_libarrow:je_arrow_mallocx", "params": {"flags": "6", "size": "0x40"}, "traceback":</span> |
| <span class="go">{"time": 14814.954486, "event": "probe_libarrow:je_arrow_mallocx__return", "params": {"arg1": "0x7f4a97e0a000"}, "traceb</span> |
| <span class="go">{"time": 14814.954502, "event": "probe_libarrow:je_arrow_rallocx", "params": {"flags": "6", "size": "0x40", "ptr": "0x7f</span> |
| <span class="go">{"time": 14814.954507, "event": "probe_libarrow:je_arrow_rallocx__return", "params": {"arg1": "0x7f4a97e0a040"}, "traceb</span> |
| <span class="go">{"time": 14814.954796, "event": "probe_libarrow:je_arrow_mallocx", "params": {"flags": "6", "size": "0x40"}, "traceback"</span> |
| <span class="go">{"time": 14814.954805, "event": "probe_libarrow:je_arrow_mallocx__return", "params": {"arg1": "0x7f4a97e0a080"}, "traceb</span> |
| <span class="go">{"time": 14814.954817, "event": "probe_libarrow:je_arrow_mallocx", "params": {"flags": "6", "size": "0x40"}, "traceback"</span> |
| <span class="go">{"time": 14814.95482, "event": "probe_libarrow:je_arrow_mallocx__return", "params": {"arg1": "0x7f4a97e0a0c0"}, "traceba</span> |
| </pre></div> |
| </div> |
| <p>From there one can answer a number of questions. For example, the following |
| script will find which allocations were never freed, and print the associated |
| tracebacks along with the count of dangling allocations:</p> |
| <div class="literal-block-wrapper docutils container" id="id2"> |
| <div class="code-block-caption"><span class="caption-text">count_tracebacks.py</span><a class="headerlink" href="#id2" title="Link to this code">#</a></div> |
| <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="sd">'''Find tracebacks of allocations with no corresponding free'''</span> |
| <span class="kn">import</span><span class="w"> </span><span class="nn">sys</span> |
| <span class="kn">import</span><span class="w"> </span><span class="nn">json</span> |
| <span class="kn">from</span><span class="w"> </span><span class="nn">collections</span><span class="w"> </span><span class="kn">import</span> <span class="n">defaultdict</span> |
| |
| <span class="n">allocated</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span> |
| |
| <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span class="p">:</span> |
| <span class="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">)</span> |
| <span class="n">data</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> |
| |
| <span class="k">if</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:je_arrow_mallocx__return"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'arg1'</span><span class="p">]</span> |
| <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'traceback'</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:je_arrow_rallocx"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'ptr'</span><span class="p">]</span> |
| <span class="k">del</span> <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:je_arrow_rallocx__return"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'arg1'</span><span class="p">]</span> |
| <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'traceback'</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:je_arrow_dallocx"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'ptr'</span><span class="p">]</span> |
| <span class="k">if</span> <span class="n">address</span> <span class="ow">in</span> <span class="n">allocated</span><span class="p">:</span> |
| <span class="k">del</span> <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:mi_malloc_aligned__return"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'arg1'</span><span class="p">]</span> |
| <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'traceback'</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:mi_realloc_aligned"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'p'</span><span class="p">]</span> |
| <span class="k">del</span> <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:mi_realloc_aligned__return"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'arg1'</span><span class="p">]</span> |
| <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'traceback'</span><span class="p">]</span> |
| <span class="k">elif</span> <span class="n">data</span><span class="p">[</span><span class="s1">'event'</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"probe_libarrow:mi_free"</span><span class="p">:</span> |
| <span class="n">address</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="s1">'params'</span><span class="p">][</span><span class="s1">'p'</span><span class="p">]</span> |
| <span class="k">if</span> <span class="n">address</span> <span class="ow">in</span> <span class="n">allocated</span><span class="p">:</span> |
| <span class="k">del</span> <span class="n">allocated</span><span class="p">[</span><span class="n">address</span><span class="p">]</span> |
| |
| <span class="n">traceback_counts</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span> |
| |
| <span class="k">for</span> <span class="n">traceback</span> <span class="ow">in</span> <span class="n">allocated</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> |
| <span class="n">traceback_counts</span><span class="p">[</span><span class="n">traceback</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span> |
| |
| <span class="k">for</span> <span class="n">traceback</span><span class="p">,</span> <span class="n">count</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">traceback_counts</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="o">-</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span> |
| <span class="nb">print</span><span class="p">(</span><span class="s2">"Num of dangling allocations:"</span><span class="p">,</span> <span class="n">count</span><span class="p">)</span> |
| <span class="nb">print</span><span class="p">(</span><span class="n">traceback</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| </div> |
| <p>The script can be invoked like so:</p> |
| <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>cat<span class="w"> </span>processed_events.jsonl<span class="w"> </span><span class="p">|</span><span class="w"> </span>python3<span class="w"> </span>/arrow/count_tracebacks.py |
| <span class="go">Num of dangling allocations: 1</span> |
| <span class="go"> 7fc945e5cfd2 arrow::(anonymous namespace)::JemallocAllocator::ReallocateAligned+0x13b (/build/cpp/debug/libarrow.so.700.0.0)</span> |
| <span class="go"> 7fc945e5fe4f arrow::BaseMemoryPoolImpl<arrow::(anonymous namespace)::JemallocAllocator>::Reallocate+0x93 (/build/cpp/debug/libarrow.so.700.0.0)</span> |
| <span class="go"> 7fc945e618f7 arrow::PoolBuffer::Resize+0xed (/build/cpp/debug/libarrow.so.700.0.0)</span> |
| <span class="go"> 55a38b163859 arrow::BufferBuilder::Resize+0x12d (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 55a38b163bbe arrow::BufferBuilder::Finish+0x48 (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 55a38b163e3a arrow::BufferBuilder::Finish+0x50 (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 55a38b163f90 arrow::BufferBuilder::FinishWithLength+0x4e (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 55a38b2c8fa7 arrow::TypedBufferBuilder<int, void>::FinishWithLength+0x4f (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 55a38b2bcce7 arrow::NumericBuilder<arrow::Int32Type>::FinishInternal+0x107 (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 7fc945c065ae arrow::ArrayBuilder::Finish+0x5a (/build/cpp/debug/libarrow.so.700.0.0)</span> |
| <span class="go"> 7fc94736ed41 arrow::ipc::internal::json::(anonymous namespace)::Converter::Finish+0x123 (/build/cpp/debug/libarrow.so.700.0.0)</span> |
| <span class="go"> 7fc94737426e arrow::ipc::internal::json::ArrayFromJSON+0x299 (/build/cpp/debug/libarrow.so.700.0.0)</span> |
| <span class="go"> 7fc948e98858 arrow::ArrayFromJSON+0x64 (/build/cpp/debug/libarrow_testing.so.700.0.0)</span> |
| <span class="go"> 55a38b6773f3 arrow::StructArray_FlattenOfSlice_Test::TestBody+0x79 (/build/cpp/debug/arrow-array-test)</span> |
| <span class="go"> 7fc944689633 testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>+0x68 (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc94468132a testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>+0x5d (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc9446555eb testing::Test::Run+0xf1 (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc94465602d testing::TestInfo::Run+0x13f (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc944656947 testing::TestSuite::Run+0x14b (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc9446663f5 testing::internal::UnitTestImpl::RunAllTests+0x433 (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc94468ab61 testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>+0x68 (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc944682568 testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>+0x5d (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc944664b0c testing::UnitTest::Run+0xcc (/build/cpp/googletest_ep-prefix/lib/libgtestd.so.1.11.0)</span> |
| <span class="go"> 7fc9446d0299 RUN_ALL_TESTS+0x14 (/build/cpp/googletest_ep-prefix/lib/libgtest_maind.so.1.11.0)</span> |
| <span class="go"> 7fc9446d021b main+0x42 (/build/cpp/googletest_ep-prefix/lib/libgtest_maind.so.1.11.0)</span> |
| <span class="go"> 7fc9441e70b2 __libc_start_main+0xf2 (/usr/lib/x86_64-linux-gnu/libc-2.31.so)</span> |
| <span class="go"> 55a38b10a50d _start+0x2d (/build/cpp/debug/arrow-array-test)</span> |
| </pre></div> |
| </div> |
| </section> |
| </section> |
| |
| |
| </article> |
| |
| |
| |
| |
| |
| <footer class="prev-next-footer d-print-none"> |
| |
| <div class="prev-next-area"> |
| <a class="left-prev" |
| href="overview.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">High-Level Overview</p> |
| </div> |
| </a> |
| <a class="right-next" |
| href="arrays.html" |
| title="next page"> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">next</p> |
| <p class="prev-next-title">Arrays</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 class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2"> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#buffers">Buffers</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#accessing-buffer-memory">Accessing Buffer Memory</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#slicing">Slicing</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#allocating-a-buffer">Allocating a Buffer</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#building-a-buffer">Building a Buffer</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#memory-pools">Memory Pools</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#default-memory-pool">Default Memory Pool</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#overriding-the-default-memory-pool">Overriding the Default Memory Pool</a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#stl-integration">STL Integration</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#devices">Devices</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#device-agnostic-programming">Device-Agnostic Programming</a></li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#memory-profiling">Memory Profiling</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/memory.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=8878045cc6db502f8baf"></script> |
| <script defer src="../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf"></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-2025 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> 8.2.3. |
| <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.16.1. |
| </p></div> |
| |
| </div> |
| |
| </div> |
| |
| </footer> |
| </body> |
| </html> |