blob: a8d22f9d13305aadff683a474368e18e3fa3a9e1 [file] [log] [blame]
<!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="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>User Guide &#8212; Apache Arrow v17.0.0.dev52</title>
<script data-cfasync="false">
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
</script>
<!-- Loaded before other Sphinx assets -->
<link href="../_static/styles/theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../_static/styles/bootstrap.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../_static/styles/pydata-sphinx-theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../_static/vendor/fontawesome/6.5.1/css/all.min.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<link rel="stylesheet" type="text/css" href="../_static/theme_overrides.css" />
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae" />
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae" />
<script src="../_static/vendor/fontawesome/6.5.1/js/all.min.js?digest=8d27b9dea8ad943066ae"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/sphinx_highlight.js"></script>
<script src="../_static/clipboard.min.js"></script>
<script src="../_static/copybutton.js"></script>
<script src="../_static/design-tabs.js"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'cpp/user_guide';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.15.2';
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/user_guide.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="High-Level Overview" href="overview.html" />
<link rel="prev" title="Arrow Datasets" href="tutorials/datasets_tutorial.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<!-- 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="">
<a id="pst-skip-link" class="skip-link" href="#main-content">Skip to main content</a>
<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>
<input type="checkbox"
class="sidebar-toggle"
name="__primary"
id="__primary"/>
<label class="overlay overlay-primary" for="__primary"></label>
<input type="checkbox"
class="sidebar-toggle"
name="__secondary"
id="__secondary"/>
<label class="overlay overlay-secondary" for="__secondary"></label>
<div class="search-button__wrapper">
<div class="search-button__overlay"></div>
<div class="search-button__search-container">
<form class="bd-search d-flex align-items-center"
action="../search.html"
method="get">
<i class="fa-solid fa-magnifying-glass"></i>
<input type="search"
class="form-control"
name="q"
id="search-input"
placeholder="Search the docs ..."
aria-label="Search the docs ..."
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"/>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
</form></div>
</div>
<header class="bd-header navbar navbar-expand-lg bd-navbar">
<div class="bd-header__inner bd-page-width">
<label class="sidebar-toggle primary-toggle" for="__primary">
<span class="fa-solid fa-bars"></span>
</label>
<div class="col-lg-3 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 v17.0.0.dev52 - Home"/>
<script>document.write(`<img src="../_static/arrow-dark.png" class="logo__image only-dark" alt="Apache Arrow v17.0.0.dev52 - Home"/>`);</script>
</a></div>
</div>
<div class="col-lg-9 navbar-header-items">
<div class="me-auto navbar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<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 dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links">
Implementations
</button>
<ul id="pst-nav-more-links" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item current active">
<a class="nav-link dropdown-item nav-internal" href="index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="navbar-header-items__end">
<div class="navbar-item navbar-persistent--container">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" 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>
`);
</script>
</div>
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-2"
type="button"
class="version-switcher__button btn btn-sm navbar-btn 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>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="navbar-persistent--mobile">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" 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>
`);
</script>
</div>
<label class="sidebar-toggle secondary-toggle" for="__secondary" tabindex="0">
<span class="fa-solid fa-outdent"></span>
</label>
</div>
</header>
<div class="bd-container">
<div class="bd-container__inner bd-page-width">
<div class="bd-sidebar-primary bd-sidebar">
<div class="sidebar-header-items sidebar-primary__section">
<div class="sidebar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<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 dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links-2">
Implementations
</button>
<ul id="pst-nav-more-links-2" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item current active">
<a class="nav-link dropdown-item nav-internal" href="index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="sidebar-header-items__end">
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-3"
type="button"
class="version-switcher__button btn btn-sm navbar-btn 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>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</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 has-children"><a class="reference internal" href="getting_started.html">Getting Started</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-1"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="build_system.html">Using Arrow C++ in your own project</a></li>
<li class="toctree-l2"><a class="reference internal" href="conventions.html">Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorials/basic_arrow.html">Basic Arrow Data Structures</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorials/io_tutorial.html">Arrow File I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorials/compute_tutorial.html">Arrow Compute</a></li>
<li class="toctree-l2"><a class="reference internal" href="tutorials/datasets_tutorial.html">Arrow Datasets</a></li>
</ul>
</li>
<li class="toctree-l1 current active has-children"><a class="current reference internal" href="#">User Guide</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-2"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="overview.html">High-Level Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="memory.html">Memory Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="arrays.html">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="datatypes.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="tables.html">Tabular Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="compute.html">Compute Functions</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="gandiva.html">The Gandiva Expression Compiler</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-3"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="gandiva/expr_projector_filter.html">Gandiva Expression, Projector, and Filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="gandiva/external_func.html">Gandiva External Functions Development Guide</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="streaming_execution.html">Acero: A C++ streaming execution engine</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-4"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="acero/overview.html">Acero Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html">Acero User’s Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/substrait.html">Using Acero with Substrait</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html">Developer’s Guide</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="io.html">Input / output and filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipc.html">Reading and writing the Arrow IPC format</a></li>
<li class="toctree-l2"><a class="reference internal" href="orc.html">Reading and Writing ORC files</a></li>
<li class="toctree-l2"><a class="reference internal" href="parquet.html">Reading and writing Parquet files</a></li>
<li class="toctree-l2"><a class="reference internal" href="csv.html">Reading and Writing CSV files</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html">Reading JSON files</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html">Tabular Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="gdb.html">Debugging code using Arrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="threading.html">Thread Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="opentelemetry.html">OpenTelemetry</a></li>
<li class="toctree-l2"><a class="reference internal" href="env_vars.html">Environment Variables</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="examples/index.html">Examples</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-5"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="examples/cmake_minimal_build.html">Minimal build using CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples/compute_and_write_example.html">Compute and Write CSV Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples/dataset_documentation_example.html">Arrow Datasets example</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples/dataset_skyhook_scan_example.html">Arrow Skyhook example</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples/row_columnar_conversion.html">Row to columnar conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples/tuple_range_conversion.html">std::tuple-like ranges to Arrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples/converting_recordbatch_to_tensor.html">Converting RecordBatch to Tensor</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="api.html">API Reference</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-6"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="api/support.html">Programming Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/memory.html">Memory (management)</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/thread.html">Thread (management)</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/datatype.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/array.html">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/scalar.html">Scalars</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/builder.html">Array Builders</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/table.html">Two-dimensional Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/c_abi.html">C Interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/compute.html">Compute Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/acero.html">Streaming Execution (Acero)</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/gandiva.html">Gandiva Expression Compiler</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/tensor.html">Tensors</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/utilities.html">Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/async.html">Asynchronous programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/io.html">Input / output</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/ipc.html">Arrow IPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/formats.html">File Formats</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/cuda.html">CUDA support</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/flightsql.html">Arrow Flight SQL</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/filesystem.html">Filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="api/dataset.html">Dataset</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/cookbook/cpp/">C++ cookbook</a></li>
</ul>
</div>
</nav></div>
</div>
<div class="sidebar-primary-items__end sidebar-primary__section">
</div>
<div id="rtd-footer-container"></div>
</div>
<main id="main-content" class="bd-main">
<div class="bd-content">
<div class="bd-article-container">
<div class="bd-header-article">
<div class="header-article-items header-article__inner">
<div class="header-article-items__start">
<div class="header-article-item">
<nav aria-label="Breadcrumb">
<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="index.html" class="nav-link">C++ Implementation</a></li>
<li class="breadcrumb-item active" aria-current="page">User Guide</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="user-guide">
<h1>User Guide<a class="headerlink" href="#user-guide" title="Permalink to this heading">#</a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="overview.html">High-Level Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-physical-layer">The physical layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-one-dimensional-layer">The one-dimensional layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-two-dimensional-layer">The two-dimensional layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-compute-layer">The compute layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-io-layer">The IO layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-inter-process-communication-ipc-layer">The Inter-Process Communication (IPC) layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-file-formats-layer">The file formats layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-devices-layer">The devices layer</a></li>
<li class="toctree-l2"><a class="reference internal" href="overview.html#the-filesystem-layer">The filesystem layer</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="memory.html">Memory Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="memory.html#buffers">Buffers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="memory.html#accessing-buffer-memory">Accessing Buffer Memory</a></li>
<li class="toctree-l3"><a class="reference internal" href="memory.html#slicing">Slicing</a></li>
<li class="toctree-l3"><a class="reference internal" href="memory.html#allocating-a-buffer">Allocating a Buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="memory.html#building-a-buffer">Building a Buffer</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="memory.html#memory-pools">Memory Pools</a><ul>
<li class="toctree-l3"><a class="reference internal" href="memory.html#default-memory-pool">Default Memory Pool</a></li>
<li class="toctree-l3"><a class="reference internal" href="memory.html#overriding-the-default-memory-pool">Overriding the Default Memory Pool</a></li>
<li class="toctree-l3"><a class="reference internal" href="memory.html#stl-integration">STL Integration</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="memory.html#devices">Devices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="memory.html#device-agnostic-programming">Device-Agnostic Programming</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="memory.html#memory-profiling">Memory Profiling</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="arrays.html">Arrays</a><ul>
<li class="toctree-l2"><a class="reference internal" href="arrays.html#building-an-array">Building an array</a><ul>
<li class="toctree-l3"><a class="reference internal" href="arrays.html#available-strategies">Available strategies</a></li>
<li class="toctree-l3"><a class="reference internal" href="arrays.html#using-arraybuilder-and-its-subclasses">Using ArrayBuilder and its subclasses</a></li>
<li class="toctree-l3"><a class="reference internal" href="arrays.html#performance">Performance</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="arrays.html#size-limitations-and-recommendations">Size Limitations and Recommendations</a></li>
<li class="toctree-l2"><a class="reference internal" href="arrays.html#chunked-arrays">Chunked Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="arrays.html#slicing">Slicing</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="datatypes.html">Data Types</a><ul>
<li class="toctree-l2"><a class="reference internal" href="datatypes.html#creating-data-types">Creating data types</a></li>
<li class="toctree-l2"><a class="reference internal" href="datatypes.html#type-traits">Type Traits</a></li>
<li class="toctree-l2"><a class="reference internal" href="datatypes.html#visitor-pattern">Visitor Pattern</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tables.html">Tabular Data</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tables.html#fields">Fields</a></li>
<li class="toctree-l2"><a class="reference internal" href="tables.html#schemas">Schemas</a></li>
<li class="toctree-l2"><a class="reference internal" href="tables.html#tables">Tables</a></li>
<li class="toctree-l2"><a class="reference internal" href="tables.html#record-batches">Record Batches</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="compute.html">Compute Functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="compute.html#the-generic-compute-api">The generic Compute API</a><ul>
<li class="toctree-l3"><a class="reference internal" href="compute.html#functions-and-function-registry">Functions and function registry</a></li>
<li class="toctree-l3"><a class="reference internal" href="compute.html#input-shapes">Input shapes</a></li>
<li class="toctree-l3"><a class="reference internal" href="compute.html#invoking-functions">Invoking functions</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="compute.html#implicit-casts">Implicit casts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="compute.html#common-numeric-type">Common numeric type</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="compute.html#available-functions">Available functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="compute.html#type-categories">Type categories</a></li>
<li class="toctree-l3"><a class="reference internal" href="compute.html#aggregations">Aggregations</a><ul>
<li class="toctree-l4"><a class="reference internal" href="compute.html#grouped-aggregations-group-by">Grouped Aggregations (“group by”)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="compute.html#element-wise-scalar-functions">Element-wise (“scalar”) functions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="compute.html#arithmetic-functions">Arithmetic functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#bit-wise-functions">Bit-wise functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#rounding-functions">Rounding functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#logarithmic-functions">Logarithmic functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#trigonometric-functions">Trigonometric functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#comparisons">Comparisons</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#logical-functions">Logical functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-predicates">String predicates</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-transforms">String transforms</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-padding">String padding</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-trimming">String trimming</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-splitting">String splitting</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-component-extraction">String component extraction</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-joining">String joining</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#string-slicing">String Slicing</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#containment-tests">Containment tests</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#categorizations">Categorizations</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#selecting-multiplexing">Selecting / multiplexing</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#structural-transforms">Structural transforms</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#conversions">Conversions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#temporal-component-extraction">Temporal component extraction</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#temporal-difference">Temporal difference</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#timezone-handling">Timezone handling</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#random-number-generation">Random number generation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="compute.html#array-wise-vector-functions">Array-wise (“vector”) functions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="compute.html#cumulative-functions">Cumulative Functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#associative-transforms">Associative transforms</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#selections">Selections</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#id4">Containment tests</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#sorts-and-partitions">Sorts and partitions</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#cpp-compute-vector-structural-transforms">Structural transforms</a></li>
<li class="toctree-l4"><a class="reference internal" href="compute.html#pairwise-functions">Pairwise functions</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gandiva.html">The Gandiva Expression Compiler</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gandiva.html#expression-projector-and-filter">Expression, Projector and Filter</a></li>
<li class="toctree-l2"><a class="reference internal" href="gandiva.html#external-functions-development">External Functions Development</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gandiva/expr_projector_filter.html">Gandiva Expression, Projector, and Filter</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gandiva/expr_projector_filter.html#building-expressions">Building Expressions</a></li>
<li class="toctree-l4"><a class="reference internal" href="gandiva/expr_projector_filter.html#projectors-and-filters">Projectors and Filters</a><ul>
<li class="toctree-l5"><a class="reference internal" href="gandiva/expr_projector_filter.html#evaluating-projections">Evaluating projections</a></li>
<li class="toctree-l5"><a class="reference internal" href="gandiva/expr_projector_filter.html#evaluating-filters">Evaluating filters</a></li>
<li class="toctree-l5"><a class="reference internal" href="gandiva/expr_projector_filter.html#evaluating-projections-and-filters">Evaluating projections and filters</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="gandiva/external_func.html">Gandiva External Functions Development Guide</a><ul>
<li class="toctree-l4"><a class="reference internal" href="gandiva/external_func.html#introduction">Introduction</a></li>
<li class="toctree-l4"><a class="reference internal" href="gandiva/external_func.html#overview-of-external-function-types-in-gandiva">Overview of External Function Types in Gandiva</a><ul>
<li class="toctree-l5"><a class="reference internal" href="gandiva/external_func.html#choosing-the-right-type-of-external-function-for-your-needs">Choosing the Right Type of External Function for Your Needs</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="gandiva/external_func.html#external-function-registration">External function registration</a><ul>
<li class="toctree-l5"><a class="reference internal" href="gandiva/external_func.html#metadata-registration-using-the-nativefunction-class">Metadata Registration Using the <code class="docutils literal notranslate"><span class="pre">NativeFunction</span></code> Class</a></li>
<li class="toctree-l5"><a class="reference internal" href="gandiva/external_func.html#external-c-functions">External C functions</a><ul>
<li class="toctree-l6"><a class="reference internal" href="gandiva/external_func.html#c-function-signature">C Function Signature</a><ul>
<li class="toctree-l7"><a class="reference internal" href="gandiva/external_func.html#signature-mapping">Signature Mapping</a></li>
<li class="toctree-l7"><a class="reference internal" href="gandiva/external_func.html#handling-arrow-stringtype-utf8-type-and-arrow-binarytype">Handling arrow::StringType (utf8 type) and arrow::BinaryType</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="gandiva/external_func.html#external-c-function-registration-apis">External C function registration APIs</a></li>
<li class="toctree-l5"><a class="reference internal" href="gandiva/external_func.html#external-ir-functions">External IR functions</a><ul>
<li class="toctree-l6"><a class="reference internal" href="gandiva/external_func.html#ir-function-implementation">IR function implementation</a><ul>
<li class="toctree-l7"><a class="reference internal" href="gandiva/external_func.html#examples-and-tools-for-compilation">Examples and Tools for Compilation</a></li>
<li class="toctree-l7"><a class="reference internal" href="gandiva/external_func.html#consistency-in-parameter-and-return-types">Consistency in Parameter and Return Types</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="gandiva/external_func.html#registering-external-ir-functions-in-gandiva">Registering External IR Functions in Gandiva</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="gandiva/external_func.html#conclusion">Conclusion</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="streaming_execution.html">Acero: A C++ streaming execution engine</a><ul>
<li class="toctree-l2"><a class="reference internal" href="acero/overview.html">Acero Overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="acero/overview.html#what-is-acero">What is Acero?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/overview.html#acero-is-not">Acero is not…</a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#a-library-for-data-scientists">A Library for Data Scientists</a></li>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#a-database">A Database</a></li>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#an-optimizer">An Optimizer</a></li>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#distributed">Distributed</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="acero/overview.html#acero-vs">Acero vs…</a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#arrow-compute">Arrow Compute</a></li>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#arrow-datasets">Arrow Datasets</a></li>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#substrait">Substrait</a></li>
<li class="toctree-l5"><a class="reference internal" href="acero/overview.html#datafusion-duckdb-velox-etc">Datafusion / DuckDb / Velox / Etc.</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/overview.html#relation-to-arrow-c">Relation to Arrow C++</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/overview.html#core-concepts">Core Concepts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/overview.html#execnode">ExecNode</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/overview.html#execbatch">ExecBatch</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/overview.html#execplan">ExecPlan</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/overview.html#declaration">Declaration</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="acero/user_guide.html">Acero User’s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#using-acero">Using Acero</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#creating-a-plan">Creating a Plan</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#using-substrait">Using Substrait</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#programmatic-plan-creation">Programmatic Plan Creation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#executing-a-plan">Executing a Plan</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#declarationtotable">DeclarationToTable</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#declarationtoreader">DeclarationToReader</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#declarationtostatus">DeclarationToStatus</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#running-a-plan-directly">Running a Plan Directly</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#providing-input">Providing Input</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#available-execnode-implementations">Available <code class="docutils literal notranslate"><span class="pre">ExecNode</span></code> Implementations</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#sources">Sources</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#compute-nodes">Compute Nodes</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#arrangement-nodes">Arrangement Nodes</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#sink-nodes">Sink Nodes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#source"><code class="docutils literal notranslate"><span class="pre">source</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#table-source"><code class="docutils literal notranslate"><span class="pre">table_source</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#filter"><code class="docutils literal notranslate"><span class="pre">filter</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#project"><code class="docutils literal notranslate"><span class="pre">project</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#aggregate"><code class="docutils literal notranslate"><span class="pre">aggregate</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#sink"><code class="docutils literal notranslate"><span class="pre">sink</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#consuming-sink"><code class="docutils literal notranslate"><span class="pre">consuming_sink</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#order-by-sink"><code class="docutils literal notranslate"><span class="pre">order_by_sink</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#select-k-sink"><code class="docutils literal notranslate"><span class="pre">select_k_sink</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#table-sink"><code class="docutils literal notranslate"><span class="pre">table_sink</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#scan"><code class="docutils literal notranslate"><span class="pre">scan</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#write"><code class="docutils literal notranslate"><span class="pre">write</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#union"><code class="docutils literal notranslate"><span class="pre">union</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/user_guide.html#hash-join"><code class="docutils literal notranslate"><span class="pre">hash_join</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/user_guide.html#summary">Summary</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="acero/substrait.html">Using Acero with Substrait</a><ul>
<li class="toctree-l3"><a class="reference internal" href="acero/substrait.html#substrait-conformance">Substrait Conformance</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#plans">Plans</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#extensions">Extensions</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#relations-in-general">Relations (in general)</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#read-relations">Read Relations</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#filter-relations">Filter Relations</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#project-relations">Project Relations</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#join-relations">Join Relations</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#aggregate-relations">Aggregate Relations</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#expressions-general">Expressions (general)</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#literals">Literals</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#types">Types</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/substrait.html#functions">Functions</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="acero/developer_guide.html">Developer’s Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#understanding-execnode">Understanding ExecNode</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#execnode-startproducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::StartProducing()</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/developer_guide.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#execnode-inputreceived"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::InputReceived()</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/developer_guide.html#id1">Examples</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#execnode-inputfinished"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::InputFinished()</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/developer_guide.html#id2">Examples</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#execnode-pauseproducing-execnode-resumeproducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::PauseProducing()</span></code> / <code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::ResumeProducing()</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/developer_guide.html#id3">Examples</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#execnode-stopproducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::StopProducing()</span></code></a><ul>
<li class="toctree-l5"><a class="reference internal" href="acero/developer_guide.html#id4">Examples</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#initialization-construction-destruction">Initialization / Construction / Destruction</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#summary">Summary</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#extending-acero">Extending Acero</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#scheduling-and-parallelism">Scheduling and Parallelism</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#parallel-execution-of-plans">Parallel Execution of Plans</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#locally-distributed-plans">Locally Distributed Plans</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#pipeline-parallelism">Pipeline Parallelism</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#asynchronicity">Asynchronicity</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#task-per-pipeline-and-sometimes-beyond">Task per Pipeline (and sometimes beyond)</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#thread-pools-and-schedulers">Thread Pools and Schedulers</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#intra-node-parallelism">Intra-node Parallelism</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#all-work-happens-in-tasks">All Work Happens in Tasks</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#ordered-execution">Ordered Execution</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#partitioned-execution">Partitioned Execution</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#spillover">Spillover</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#distributed-execution">Distributed Execution</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#profiling-tracing">Profiling &amp; Tracing</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#benchmarking">Benchmarking</a></li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#bindings">Bindings</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#public-api">Public API</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#r-dplyr">R (dplyr)</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#python">Python</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#java">Java</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#design-philosophies">Design Philosophies</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#engine-independent-compute">Engine Independent Compute</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#make-tasks-not-threads">Make Tasks not Threads</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#don-t-block-on-cpu-threads">Don’t Block on CPU Threads</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#don-t-reinvent-the-wheel">Don’t Reinvent the Wheel</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#avoid-query-optimization">Avoid Query Optimization</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#performance-guidelines">Performance Guidelines</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#batch-size">Batch Size</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#ongoing-deprecated-work">Ongoing &amp; Deprecated Work</a><ul>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#scanner-v2">Scanner v2</a></li>
<li class="toctree-l4"><a class="reference internal" href="acero/developer_guide.html#orderbysink-and-selectksink">OrderBySink and SelectKSink</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="acero/developer_guide.html#upstreaming-changes">Upstreaming Changes</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="io.html">Input / output and filesystems</a><ul>
<li class="toctree-l2"><a class="reference internal" href="io.html#reading-binary-data">Reading binary data</a></li>
<li class="toctree-l2"><a class="reference internal" href="io.html#writing-binary-data">Writing binary data</a></li>
<li class="toctree-l2"><a class="reference internal" href="io.html#filesystems">Filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="io.html#defining-new-filesystems">Defining new filesystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="ipc.html">Reading and writing the Arrow IPC format</a><ul>
<li class="toctree-l2"><a class="reference internal" href="ipc.html#reading-ipc-streams-and-files">Reading IPC streams and files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="ipc.html#synchronous-reading">Synchronous reading</a></li>
<li class="toctree-l3"><a class="reference internal" href="ipc.html#event-driven-reading">Event-driven reading</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="ipc.html#writing-ipc-streams-and-files">Writing IPC streams and files</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipc.html#configuring">Configuring</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="orc.html">Reading and Writing ORC files</a><ul>
<li class="toctree-l2"><a class="reference internal" href="orc.html#supported-orc-features">Supported ORC features</a><ul>
<li class="toctree-l3"><a class="reference internal" href="orc.html#data-types">Data types</a></li>
<li class="toctree-l3"><a class="reference internal" href="orc.html#compression">Compression</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="orc.html#reading-orc-files">Reading ORC Files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="orc.html#orcfilereader">ORCFileReader</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="orc.html#writing-orc-files">Writing ORC Files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="orc.html#orcfilewriter">ORCFileWriter</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="parquet.html">Reading and writing Parquet files</a><ul>
<li class="toctree-l2"><a class="reference internal" href="parquet.html#reading-parquet-files">Reading Parquet files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#filereader">FileReader</a><ul>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#performance-and-memory-efficiency">Performance and Memory Efficiency</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#streamreader">StreamReader</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="parquet.html#writing-parquet-files">Writing Parquet files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#writetable">WriteTable</a></li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#streamwriter">StreamWriter</a></li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#writer-properties">Writer properties</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="parquet.html#supported-parquet-features">Supported Parquet features</a><ul>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#page-types">Page types</a></li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#compression">Compression</a></li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#encodings">Encodings</a></li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#types">Types</a><ul>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#physical-types">Physical types</a></li>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#logical-types">Logical types</a></li>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#converted-types">Converted types</a></li>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#special-cases">Special cases</a></li>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#roundtripping-arrow-types">Roundtripping Arrow types</a><ul>
<li class="toctree-l5"><a class="reference internal" href="parquet.html#serialization-details">Serialization details</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="parquet.html#limitations">Limitations</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#encryption">Encryption</a></li>
<li class="toctree-l3"><a class="reference internal" href="parquet.html#miscellaneous">Miscellaneous</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="csv.html">Reading and Writing CSV files</a><ul>
<li class="toctree-l2"><a class="reference internal" href="csv.html#reading-csv-files">Reading CSV files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="csv.html#tablereader">TableReader</a></li>
<li class="toctree-l3"><a class="reference internal" href="csv.html#streamingreader">StreamingReader</a></li>
<li class="toctree-l3"><a class="reference internal" href="csv.html#tradeoffs">Tradeoffs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="csv.html#writing-csv-files">Writing CSV files</a></li>
<li class="toctree-l2"><a class="reference internal" href="csv.html#column-names">Column names</a></li>
<li class="toctree-l2"><a class="reference internal" href="csv.html#column-selection">Column selection</a><ul>
<li class="toctree-l3"><a class="reference internal" href="csv.html#interaction-with-column-names">Interaction with column names</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="csv.html#data-types">Data types</a><ul>
<li class="toctree-l3"><a class="reference internal" href="csv.html#dictionary-inference">Dictionary inference</a></li>
<li class="toctree-l3"><a class="reference internal" href="csv.html#timestamp-inference-parsing">Timestamp inference/parsing</a></li>
<li class="toctree-l3"><a class="reference internal" href="csv.html#nulls">Nulls</a></li>
<li class="toctree-l3"><a class="reference internal" href="csv.html#character-encoding">Character encoding</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="csv.html#write-options">Write Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="csv.html#performance">Performance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="json.html">Reading JSON files</a><ul>
<li class="toctree-l2"><a class="reference internal" href="json.html#tablereader">TableReader</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html#streamingreader">StreamingReader</a></li>
<li class="toctree-l2"><a class="reference internal" href="json.html#data-types">Data types</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="dataset.html">Tabular Datasets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#reading-datasets">Reading Datasets</a><ul>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#dataset-discovery">Dataset discovery</a></li>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#reading-different-file-formats">Reading different file formats</a></li>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#customizing-file-formats">Customizing file formats</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#filtering-data">Filtering data</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#projecting-columns">Projecting columns</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#reading-and-writing-partitioned-data">Reading and writing partitioned data</a><ul>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#different-partitioning-schemes">Different partitioning schemes</a></li>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#partitioning-performance-considerations">Partitioning performance considerations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#reading-from-other-data-sources">Reading from other data sources</a><ul>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#reading-in-memory-data">Reading in-memory data</a></li>
<li class="toctree-l3"><a class="reference internal" href="dataset.html#reading-from-cloud-storage">Reading from cloud storage</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#a-note-on-transactions-acid-guarantees">A note on transactions &amp; ACID guarantees</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html#full-example">Full Example</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="flight.html">Arrow Flight RPC</a><ul>
<li class="toctree-l2"><a class="reference internal" href="flight.html#writing-a-flight-service">Writing a Flight Service</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#using-the-flight-client">Using the Flight Client</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#cancellation-and-timeouts">Cancellation and Timeouts</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#enabling-tls">Enabling TLS</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#enabling-authentication">Enabling Authentication</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#custom-middleware">Custom Middleware</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#best-practices">Best practices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="flight.html#grpc">gRPC</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#re-use-clients-whenever-possible">Re-use clients whenever possible</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#dont-round-robin-load-balance">Don’t round-robin load balance</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#debugging-connection-issues">Debugging connection issues</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#memory-management">Memory management</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#excessive-traffic">Excessive traffic</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#limiting-doput-batch-size">Limiting DoPut Batch Size</a></li>
<li class="toctree-l3"><a class="reference internal" href="flight.html#closing-unresponsive-connections">Closing unresponsive connections</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="flight.html#alternative-transports">Alternative Transports</a><ul>
<li class="toctree-l3"><a class="reference internal" href="flight.html#ucx-transport">UCX Transport</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gdb.html">Debugging code using Arrow</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gdb.html#gdb-extension-for-arrow-c">GDB extension for Arrow C++</a><ul>
<li class="toctree-l3"><a class="reference internal" href="gdb.html#manual-loading">Manual loading</a></li>
<li class="toctree-l3"><a class="reference internal" href="gdb.html#automatic-loading">Automatic loading</a></li>
<li class="toctree-l3"><a class="reference internal" href="gdb.html#supported-classes">Supported classes</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="threading.html">Thread Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="threading.html#thread-pools">Thread Pools</a><ul>
<li class="toctree-l3"><a class="reference internal" href="threading.html#cpu-vs-i-o">CPU vs. I/O</a></li>
<li class="toctree-l3"><a class="reference internal" href="threading.html#serial-execution">Serial Execution</a></li>
<li class="toctree-l3"><a class="reference internal" href="threading.html#jemalloc-background-threads">Jemalloc Background Threads</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="threading.html#asynchronous-utilities">Asynchronous Utilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="threading.html#future">Future</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="opentelemetry.html">OpenTelemetry</a><ul>
<li class="toctree-l2"><a class="reference internal" href="opentelemetry.html#creating-a-build-with-opentelemetry-tracing-enabled">Creating a Build with OpenTelemetry Tracing Enabled</a></li>
<li class="toctree-l2"><a class="reference internal" href="opentelemetry.html#exporting-tracing-information">Exporting Tracing Information</a></li>
<li class="toctree-l2"><a class="reference internal" href="opentelemetry.html#visualizing-traces-with-jaeger-ui">Visualizing Traces with Jaeger UI</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="env_vars.html">Environment Variables</a></li>
</ul>
</div>
</section>
</article>
<footer class="prev-next-footer">
<div class="prev-next-area">
<a class="left-prev"
href="tutorials/datasets_tutorial.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">Arrow Datasets</p>
</div>
</a>
<a class="right-next"
href="overview.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">High-Level Overview</p>
</div>
<i class="fa-solid fa-angle-right"></i>
</a>
</div>
</footer>
</div>
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
<div class="sidebar-secondary-item">
<div class="tocsection editthispage">
<a href="https://github.com/apache/arrow/edit/main/docs/source/cpp/user_guide.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 src="../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae"></script>
<script src="../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae"></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-2024 Apache Software Foundation.
Apache Arrow, Arrow, Apache, the Apache feather 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> 6.2.0.
<br/>
</p>
</div>
</div>
<div class="footer-items__end">
<div class="footer-item">
<p class="theme-version">
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.15.2.
</p></div>
</div>
</div>
</footer>
</body>
</html>