| |
| <!DOCTYPE html> |
| |
| <html lang="en"> |
| <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>Developer’s Guide — Apache Arrow v13.0.0</title> |
| |
| <link href="../../_static/styles/theme.css?digest=1999514e3f237ded88cf" rel="stylesheet"> |
| <link href="../../_static/styles/pydata-sphinx-theme.css?digest=1999514e3f237ded88cf" rel="stylesheet"> |
| |
| |
| <link rel="stylesheet" |
| href="../../_static/vendor/fontawesome/5.13.0/css/all.min.css"> |
| <link rel="preload" as="font" type="font/woff2" crossorigin |
| href="../../_static/vendor/fontawesome/5.13.0/webfonts/fa-solid-900.woff2"> |
| <link rel="preload" as="font" type="font/woff2" crossorigin |
| href="../../_static/vendor/fontawesome/5.13.0/webfonts/fa-brands-400.woff2"> |
| |
| |
| |
| |
| |
| <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" /> |
| <link rel="stylesheet" type="text/css" href="../../_static/styles/pydata-sphinx-theme.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" /> |
| |
| <link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=1999514e3f237ded88cf"> |
| |
| <script src="../../_static/jquery.js"></script> |
| <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></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> |
| <link rel="canonical" href="https://arrow.apache.org/docs/cpp/acero/developer_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="Input / output and filesystems" href="../io.html" /> |
| <link rel="prev" title="Using Acero with Substrait" href="substrait.html" /> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <meta name="docsearch:language" content="en"> |
| |
| |
| <!-- Google Analytics --> |
| |
| |
| <!-- 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-spy="scroll" data-target="#bd-toc-nav" data-offset="80"> |
| |
| <div class="container-fluid" id="banner"></div> |
| |
| |
| |
| |
| <div class="container-xl"> |
| <div class="row"> |
| |
| |
| <!-- Only show if we have sidebars configured, else just a small margin --> |
| <div class="col-12 col-md-3 bd-sidebar"> |
| <div class="sidebar-start-items"> |
| <a class="navbar-brand" href="../../index.html"> |
| <img src="../../_static/arrow.png" class="logo" alt="logo"> |
| </a> |
| |
| <div id="version-search-wrapper"> |
| |
| <div id="version-button" class="dropdown"> |
| <button type="button" class="btn btn-secondary btn-sm navbar-btn dropdown-toggle" id="version_switcher_button" data-toggle="dropdown"> |
| 13.0.0 |
| <span class="caret"></span> |
| </button> |
| <div id="version_switcher" class="dropdown-menu list-group-flush py-0" aria-labelledby="version_switcher_button"> |
| <!-- dropdown will be populated by javascript on page load --> |
| </div> |
| </div> |
| |
| <script type="text/javascript"> |
| // Function to construct the target URL from the JSON components |
| function buildURL(entry) { |
| var template = "https://arrow.apache.org/docs/{version}"; // supplied by jinja |
| template = template.replace("{version}", entry.version); |
| return template; |
| } |
| |
| // Function to check if corresponding page path exists in other version of docs |
| // and, if so, go there instead of the homepage of the other docs version |
| function checkPageExistsAndRedirect(event) { |
| const currentFilePath = "cpp/acero/developer_guide.html", |
| otherDocsHomepage = event.target.getAttribute("href"); |
| let tryUrl = `${otherDocsHomepage}${currentFilePath}`; |
| $.ajax({ |
| type: 'HEAD', |
| url: tryUrl, |
| // if the page exists, go there |
| success: function() { |
| location.href = tryUrl; |
| } |
| }).fail(function() { |
| location.href = otherDocsHomepage; |
| }); |
| return false; |
| } |
| |
| // Function to populate the version switcher |
| (function () { |
| // get JSON config |
| $.getJSON("/docs/_static/versions.json", function(data, textStatus, jqXHR) { |
| // create the nodes first (before AJAX calls) to ensure the order is |
| // correct (for now, links will go to doc version homepage) |
| $.each(data, function(index, entry) { |
| // if no custom name specified (e.g., "latest"), use version string |
| if (!("name" in entry)) { |
| entry.name = entry.version; |
| } |
| // construct the appropriate URL, and add it to the dropdown |
| entry.url = buildURL(entry); |
| const node = document.createElement("a"); |
| node.setAttribute("class", "list-group-item list-group-item-action py-1"); |
| node.setAttribute("href", `${entry.url}`); |
| node.textContent = `${entry.name}`; |
| node.onclick = checkPageExistsAndRedirect; |
| $("#version_switcher").append(node); |
| }); |
| }); |
| })(); |
| </script> |
| |
| <form id="search-box" class="bd-search d-flex align-items-center" action="../../search.html" method="get"> |
| <i class="icon fas fa-search"></i> |
| <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" > |
| </form> |
| |
| </div> |
| |
| <nav class="bd-links" id="bd-docs-nav" aria-label="Main navigation"> |
| <div class="bd-toc-item active"> |
| |
| <p aria-level="2" class="caption" role="heading"> |
| <span class="caption-text"> |
| Supported Environments |
| </span> |
| </p> |
| <ul class="current nav bd-sidenav"> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../c_glib/index.html"> |
| C/GLib |
| </a> |
| </li> |
| <li class="toctree-l1 current active has-children"> |
| <a class="reference internal" href="../index.html"> |
| C++ |
| </a> |
| <input checked="" class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/> |
| <label for="toctree-checkbox-1"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul class="current"> |
| <li class="toctree-l2 has-children"> |
| <a class="reference internal" href="../getting_started.html"> |
| Getting Started |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/> |
| <label for="toctree-checkbox-2"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l2 current active has-children"> |
| <a class="reference internal" href="../user_guide.html"> |
| User Guide |
| </a> |
| <input checked="" class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/> |
| <label for="toctree-checkbox-3"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul class="current"> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../overview.html"> |
| High-Level Overview |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../memory.html"> |
| Memory Management |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../arrays.html"> |
| Arrays |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../datatypes.html"> |
| Data Types |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../tables.html"> |
| Tabular Data |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../compute.html"> |
| Compute Functions |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../gandiva.html"> |
| The Gandiva Expression Compiler |
| </a> |
| </li> |
| <li class="toctree-l3 current active has-children"> |
| <a class="reference internal" href="../streaming_execution.html"> |
| Acero: A C++ streaming execution engine |
| </a> |
| <input checked="" class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/> |
| <label for="toctree-checkbox-4"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul class="current"> |
| <li class="toctree-l4"> |
| <a class="reference internal" href="overview.html"> |
| Acero Overview |
| </a> |
| </li> |
| <li class="toctree-l4"> |
| <a class="reference internal" href="user_guide.html"> |
| Acero User’s Guide |
| </a> |
| </li> |
| <li class="toctree-l4"> |
| <a class="reference internal" href="substrait.html"> |
| Using Acero with Substrait |
| </a> |
| </li> |
| <li class="toctree-l4 current active"> |
| <a class="current reference internal" href="#"> |
| Developer’s Guide |
| </a> |
| </li> |
| </ul> |
| </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> |
| </li> |
| <li class="toctree-l2 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 for="toctree-checkbox-5"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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/dataset_skyhook_scan_example.html"> |
| Arrow Skyhook example |
| </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> |
| </ul> |
| </li> |
| <li class="toctree-l2 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 for="toctree-checkbox-6"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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/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> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference external" href="https://github.com/apache/arrow/blob/main/csharp/README.md"> |
| C# |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference external" href="https://pkg.go.dev/github.com/apache/arrow/go"> |
| Go |
| </a> |
| </li> |
| <li class="toctree-l1 has-children"> |
| <a class="reference internal" href="../../java/index.html"> |
| Java |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/> |
| <label for="toctree-checkbox-7"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/quickstartguide.html"> |
| Quick Start Guide |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/overview.html"> |
| High-Level Overview |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/install.html"> |
| Installing Java Modules |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/memory.html"> |
| Memory Management |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/vector.html"> |
| ValueVector |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/vector_schema_root.html"> |
| Tabular Data |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/table.html"> |
| Table |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/ipc.html"> |
| Reading/Writing IPC formats |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/algorithm.html"> |
| Java Algorithms |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/flight.html"> |
| Arrow Flight RPC |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/flight_sql.html"> |
| Arrow Flight SQL |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/flight_sql_jdbc_driver.html"> |
| Arrow Flight SQL JDBC Driver |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/dataset.html"> |
| Dataset |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/substrait.html"> |
| Substrait |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/cdata.html"> |
| C Data Interface |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/jdbc.html"> |
| Arrow JDBC Adapter |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../java/reference/index.html"> |
| Reference (javadoc) |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../js/index.html"> |
| 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> |
| <input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/> |
| <label for="toctree-checkbox-8"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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 has-children"> |
| <a class="reference internal" href="../../python/filesystems_deprecated.html"> |
| Filesystem Interface (legacy) |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/> |
| <label for="toctree-checkbox-9"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.hdfs.connect.html"> |
| pyarrow.hdfs.connect |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.cat.html"> |
| pyarrow.HadoopFileSystem.cat |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.chmod.html"> |
| pyarrow.HadoopFileSystem.chmod |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.chown.html"> |
| pyarrow.HadoopFileSystem.chown |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.delete.html"> |
| pyarrow.HadoopFileSystem.delete |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.df.html"> |
| pyarrow.HadoopFileSystem.df |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.disk_usage.html"> |
| pyarrow.HadoopFileSystem.disk_usage |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.download.html"> |
| pyarrow.HadoopFileSystem.download |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.exists.html"> |
| pyarrow.HadoopFileSystem.exists |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.get_capacity.html"> |
| pyarrow.HadoopFileSystem.get_capacity |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.get_space_used.html"> |
| pyarrow.HadoopFileSystem.get_space_used |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.info.html"> |
| pyarrow.HadoopFileSystem.info |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.ls.html"> |
| pyarrow.HadoopFileSystem.ls |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.mkdir.html"> |
| pyarrow.HadoopFileSystem.mkdir |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.open.html"> |
| pyarrow.HadoopFileSystem.open |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.rename.html"> |
| pyarrow.HadoopFileSystem.rename |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.rm.html"> |
| pyarrow.HadoopFileSystem.rm |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HadoopFileSystem.upload.html"> |
| pyarrow.HadoopFileSystem.upload |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../python/generated/pyarrow.HdfsFile.html"> |
| pyarrow.HdfsFile |
| </a> |
| </li> |
| </ul> |
| </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/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> |
| <input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/> |
| <label for="toctree-checkbox-10"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <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> |
| </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> |
| <input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" type="checkbox"/> |
| <label for="toctree-checkbox-11"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/datatypes.html"> |
| Data Types and Schemas |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" type="checkbox"/> |
| <label for="toctree-checkbox-12"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.decimal128.html"> |
| pyarrow.decimal128 |
| </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.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.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.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.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.FixedSizeBinaryType.html"> |
| pyarrow.FixedSizeBinaryType |
| </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.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.ExtensionType.html"> |
| pyarrow.ExtensionType |
| </a> |
| </li> |
| <li class="toctree-l4"> |
| <a class="reference internal" href="../../python/generated/pyarrow.PyExtensionType.html"> |
| pyarrow.PyExtensionType |
| </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.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_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_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_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_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> |
| </ul> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/arrays.html"> |
| Arrays and Scalars |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-13" name="toctree-checkbox-13" type="checkbox"/> |
| <label for="toctree-checkbox-13"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.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.Decimal128Array.html"> |
| pyarrow.Decimal128Array |
| </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.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.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.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.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.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.LargeListScalar.html"> |
| pyarrow.LargeListScalar |
| </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> |
| </ul> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/memory.html"> |
| Buffers and Memory |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-14" name="toctree-checkbox-14" type="checkbox"/> |
| <label for="toctree-checkbox-14"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/tables.html"> |
| Tables and Tensors |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-15" name="toctree-checkbox-15" type="checkbox"/> |
| <label for="toctree-checkbox-15"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/compute.html"> |
| Compute Functions |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-16" name="toctree-checkbox-16" type="checkbox"/> |
| <label for="toctree-checkbox-16"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.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.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.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.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.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.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.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.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> |
| </ul> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/acero.html"> |
| Acero - Streaming Execution Engine |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-17" name="toctree-checkbox-17" type="checkbox"/> |
| <label for="toctree-checkbox-17"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/substrait.html"> |
| Substrait |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-18" name="toctree-checkbox-18" type="checkbox"/> |
| <label for="toctree-checkbox-18"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.get_supported_functions.html"> |
| pyarrow.substrait.get_supported_functions |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/files.html"> |
| Streams and File Access |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-19" name="toctree-checkbox-19" type="checkbox"/> |
| <label for="toctree-checkbox-19"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/ipc.html"> |
| Serialization and IPC |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-20" name="toctree-checkbox-20" type="checkbox"/> |
| <label for="toctree-checkbox-20"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/flight.html"> |
| Arrow Flight |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-21" name="toctree-checkbox-21" type="checkbox"/> |
| <label for="toctree-checkbox-21"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/formats.html"> |
| Tabular File Formats |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-22" name="toctree-checkbox-22" type="checkbox"/> |
| <label for="toctree-checkbox-22"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.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.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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/filesystems.html"> |
| Filesystems |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-23" name="toctree-checkbox-23" type="checkbox"/> |
| <label for="toctree-checkbox-23"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/dataset.html"> |
| Dataset |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-24" name="toctree-checkbox-24" type="checkbox"/> |
| <label for="toctree-checkbox-24"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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.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.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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/cuda.html"> |
| CUDA Integration |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-25" name="toctree-checkbox-25" type="checkbox"/> |
| <label for="toctree-checkbox-25"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| <li class="toctree-l3 has-children"> |
| <a class="reference internal" href="../../python/api/misc.html"> |
| Miscellaneous |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-26" name="toctree-checkbox-26" type="checkbox"/> |
| <label for="toctree-checkbox-26"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <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> |
| </li> |
| </ul> |
| </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> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../r/index.html"> |
| 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 internal" href="../../status.html"> |
| Implementation Status |
| </a> |
| </li> |
| </ul> |
| <p aria-level="2" class="caption" role="heading"> |
| <span class="caption-text"> |
| Cookbooks |
| </span> |
| </p> |
| <ul class="nav bd-sidenav"> |
| <li class="toctree-l1"> |
| <a class="reference external" href="https://arrow.apache.org/cookbook/cpp/"> |
| C++ |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference external" href="https://arrow.apache.org/cookbook/java/"> |
| Java |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference external" href="https://arrow.apache.org/cookbook/py/"> |
| Python |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference external" href="https://arrow.apache.org/cookbook/r/"> |
| R |
| </a> |
| </li> |
| </ul> |
| <p aria-level="2" class="caption" role="heading"> |
| <span class="caption-text"> |
| Specifications and Protocols |
| </span> |
| </p> |
| <ul class="nav bd-sidenav"> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Versioning.html"> |
| Format Versioning and Stability |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Columnar.html"> |
| Arrow Columnar Format |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/CanonicalExtensions.html"> |
| Canonical Extension Types |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Flight.html"> |
| Arrow Flight RPC |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/FlightSql.html"> |
| Arrow Flight SQL |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Integration.html"> |
| Integration Testing |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/CDataInterface.html"> |
| The Arrow C data interface |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/CStreamInterface.html"> |
| The Arrow C stream interface |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/CDeviceDataInterface.html"> |
| The Arrow C Device data interface |
| </a> |
| </li> |
| <li class="toctree-l1 has-children"> |
| <a class="reference internal" href="../../format/ADBC.html"> |
| ADBC: Arrow Database Connectivity |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-27" name="toctree-checkbox-27" type="checkbox"/> |
| <label for="toctree-checkbox-27"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../format/ADBC/C.html"> |
| ADBC C API Specification |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../format/ADBC/Go.html"> |
| ADBC Go API Specification |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../format/ADBC/Java.html"> |
| ADBC Java API Specification |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Other.html"> |
| Other Data Structures |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Changing.html"> |
| Changing the Apache Arrow Format Specification |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../format/Glossary.html"> |
| Glossary |
| </a> |
| </li> |
| </ul> |
| <p aria-level="2" class="caption" role="heading"> |
| <span class="caption-text"> |
| Development |
| </span> |
| </p> |
| <ul class="nav bd-sidenav"> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/contributing.html"> |
| Contributing to Apache Arrow |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/bug_reports.html"> |
| Bug reports and feature requests |
| </a> |
| </li> |
| <li class="toctree-l1 has-children"> |
| <a class="reference internal" href="../../developers/guide/index.html"> |
| New Contributor’s Guide |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-28" name="toctree-checkbox-28" type="checkbox"/> |
| <label for="toctree-checkbox-28"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/guide/architectural_overview.html"> |
| Architectural Overview |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/guide/communication.html"> |
| Communication |
| </a> |
| </li> |
| <li class="toctree-l2 has-children"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/index.html"> |
| Steps in making your first PR |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-29" name="toctree-checkbox-29" type="checkbox"/> |
| <label for="toctree-checkbox-29"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/set_up.html"> |
| Set up |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/building.html"> |
| Building the Arrow libraries 🏋🏿♀️ |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/finding_issues.html"> |
| Finding good first issues 🔎 |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/arrow_codebase.html"> |
| Working on the Arrow codebase 🧐 |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/testing.html"> |
| Testing 🧪 |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/styling.html"> |
| Styling 😎 |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/step_by_step/pr_lifecycle.html"> |
| Lifecycle of a pull request |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/guide/documentation.html"> |
| Helping with documentation |
| </a> |
| </li> |
| <li class="toctree-l2 has-children"> |
| <a class="reference internal" href="../../developers/guide/tutorials/index.html"> |
| Tutorials |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-30" name="toctree-checkbox-30" type="checkbox"/> |
| <label for="toctree-checkbox-30"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/tutorials/python_tutorial.html"> |
| Python tutorial |
| </a> |
| </li> |
| <li class="toctree-l3"> |
| <a class="reference internal" href="../../developers/guide/tutorials/r_tutorial.html"> |
| R tutorials |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/guide/resources.html"> |
| Additional information and resources |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/overview.html"> |
| Contributing Overview |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/reviewing.html"> |
| Reviewing contributions |
| </a> |
| </li> |
| <li class="toctree-l1 has-children"> |
| <a class="reference internal" href="../../developers/cpp/index.html"> |
| C++ Development |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-31" name="toctree-checkbox-31" type="checkbox"/> |
| <label for="toctree-checkbox-31"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/cpp/building.html"> |
| Building Arrow C++ |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/cpp/development.html"> |
| Development Guidelines |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/cpp/windows.html"> |
| Developing on Windows |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/cpp/conventions.html"> |
| Conventions |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/cpp/fuzzing.html"> |
| Fuzzing Arrow C++ |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1 has-children"> |
| <a class="reference internal" href="../../developers/java/index.html"> |
| Java Development |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-32" name="toctree-checkbox-32" type="checkbox"/> |
| <label for="toctree-checkbox-32"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/java/building.html"> |
| Building Arrow Java |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/java/development.html"> |
| Development Guidelines |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/python.html"> |
| Python Development |
| </a> |
| </li> |
| <li class="toctree-l1 has-children"> |
| <a class="reference internal" href="../../developers/continuous_integration/index.html"> |
| Continuous Integration |
| </a> |
| <input class="toctree-checkbox" id="toctree-checkbox-33" name="toctree-checkbox-33" type="checkbox"/> |
| <label for="toctree-checkbox-33"> |
| <i class="fas fa-chevron-down"> |
| </i> |
| </label> |
| <ul> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/continuous_integration/overview.html"> |
| Continuous Integration |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/continuous_integration/docker.html"> |
| Running Docker Builds |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/continuous_integration/archery.html"> |
| Daily Development using Archery |
| </a> |
| </li> |
| <li class="toctree-l2"> |
| <a class="reference internal" href="../../developers/continuous_integration/crossbow.html"> |
| Packaging and Testing with Crossbow |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/benchmarks.html"> |
| Benchmarks |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/documentation.html"> |
| Building the Documentation |
| </a> |
| </li> |
| <li class="toctree-l1"> |
| <a class="reference internal" href="../../developers/release.html"> |
| Release Management Guide |
| </a> |
| </li> |
| </ul> |
| |
| |
| </div> |
| </nav> |
| </div> |
| <div class="sidebar-end-items"> |
| </div> |
| </div> |
| |
| |
| |
| |
| <div class="d-none d-xl-block col-xl-2 bd-toc"> |
| |
| |
| <div class="toc-item"> |
| |
| <div class="tocsection onthispage pt-5 pb-3"> |
| <i class="fas fa-list"></i> On this page |
| </div> |
| |
| <nav id="bd-toc-nav"> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#understanding-execnode"> |
| Understanding ExecNode |
| </a> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#execnode-startproducing"> |
| <code class="xref cpp cpp-func docutils literal notranslate"> |
| <span class="pre"> |
| ExecNode::StartProducing() |
| </span> |
| </code> |
| </a> |
| <ul class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#examples"> |
| Examples |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#execnode-inputreceived"> |
| <code class="xref cpp cpp-func docutils literal notranslate"> |
| <span class="pre"> |
| ExecNode::InputReceived() |
| </span> |
| </code> |
| </a> |
| <ul class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#id1"> |
| Examples |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#execnode-inputfinished"> |
| <code class="xref cpp cpp-func docutils literal notranslate"> |
| <span class="pre"> |
| ExecNode::InputFinished() |
| </span> |
| </code> |
| </a> |
| <ul class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#id2"> |
| Examples |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#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 class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#id3"> |
| Examples |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#execnode-stopproducing"> |
| <code class="xref cpp cpp-func docutils literal notranslate"> |
| <span class="pre"> |
| ExecNode::StopProducing() |
| </span> |
| </code> |
| </a> |
| <ul class="nav section-nav flex-column"> |
| <li class="toc-h4 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#id4"> |
| Examples |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#initialization-construction-destruction"> |
| Initialization / Construction / Destruction |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#summary"> |
| Summary |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#extending-acero"> |
| Extending Acero |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#scheduling-and-parallelism"> |
| Scheduling and Parallelism |
| </a> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#parallel-execution-of-plans"> |
| Parallel Execution of Plans |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#locally-distributed-plans"> |
| Locally Distributed Plans |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#pipeline-parallelism"> |
| Pipeline Parallelism |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#asynchronicity"> |
| Asynchronicity |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#task-per-pipeline-and-sometimes-beyond"> |
| Task per Pipeline (and sometimes beyond) |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#thread-pools-and-schedulers"> |
| Thread Pools and Schedulers |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#intra-node-parallelism"> |
| Intra-node Parallelism |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#all-work-happens-in-tasks"> |
| All Work Happens in Tasks |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#ordered-execution"> |
| Ordered Execution |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#partitioned-execution"> |
| Partitioned Execution |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#spillover"> |
| Spillover |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#distributed-execution"> |
| Distributed Execution |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#profiling-tracing"> |
| Profiling & Tracing |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#benchmarking"> |
| Benchmarking |
| </a> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#bindings"> |
| Bindings |
| </a> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#public-api"> |
| Public API |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#r-dplyr"> |
| R (dplyr) |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#python"> |
| Python |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#java"> |
| Java |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#design-philosophies"> |
| Design Philosophies |
| </a> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#engine-independent-compute"> |
| Engine Independent Compute |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#make-tasks-not-threads"> |
| Make Tasks not Threads |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#don-t-block-on-cpu-threads"> |
| Don’t Block on CPU Threads |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#don-t-reinvent-the-wheel"> |
| Don’t Reinvent the Wheel |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#avoid-query-optimization"> |
| Avoid Query Optimization |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#performance-guidelines"> |
| Performance Guidelines |
| </a> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#batch-size"> |
| Batch Size |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#ongoing-deprecated-work"> |
| Ongoing & Deprecated Work |
| </a> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#scanner-v2"> |
| Scanner v2 |
| </a> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#orderbysink-and-selectksink"> |
| OrderBySink and SelectKSink |
| </a> |
| </li> |
| </ul> |
| </li> |
| <li class="toc-h2 nav-item toc-entry"> |
| <a class="reference internal nav-link" href="#upstreaming-changes"> |
| Upstreaming Changes |
| </a> |
| </li> |
| </ul> |
| |
| </nav> |
| </div> |
| |
| <div class="toc-item"> |
| |
| |
| <div class="tocsection editthispage"> |
| <a href="https://github.com/apache/arrow/edit/main/docs/source/cpp/acero/developer_guide.rst"> |
| <i class="fas fa-pencil-alt"></i> Edit this page |
| </a> |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| |
| |
| |
| |
| |
| |
| <main class="col-12 col-md-9 col-xl-7 py-md-5 pl-md-5 pr-md-4 bd-content" role="main"> |
| |
| <div> |
| |
| <section id="developer-s-guide"> |
| <h1>Developer’s Guide<a class="headerlink" href="#developer-s-guide" title="Permalink to this heading">¶</a></h1> |
| <p>This page goes into more detail into the design of Acero. It discusses how |
| to create custom exec nodes and describes some of the philosophies behind Acero’s |
| design and implementation. Finally, it gives an overview of how to extend Acero |
| with new behaviors and how this new behavior can be upstreamed into the core Arrow |
| repository.</p> |
| <section id="understanding-execnode"> |
| <h2>Understanding ExecNode<a class="headerlink" href="#understanding-execnode" title="Permalink to this heading">¶</a></h2> |
| <p>ExecNode is an abstract class with several pure virtual methods that control how the node operates:</p> |
| <section id="execnode-startproducing"> |
| <h3><a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero8ExecNode14StartProducingEv" title="arrow::acero::ExecNode::StartProducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::StartProducing()</span></code></a><a class="headerlink" href="#execnode-startproducing" title="Permalink to this heading">¶</a></h3> |
| <p>This method is called once at the start of the plan. Most nodes ignore this method (any |
| neccesary initialization should happen in the construtor or Init). However, source nodes |
| will typically provide a custom implementation. Source nodes should schedule whatever tasks |
| are needed to start reading and providing the data. Source nodes are usually the primary |
| creator of tasks in a plan.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>The ExecPlan operates on a push-based model. Sources are often pull-based. For example, |
| your source may be an iterator. The source node will typically then schedule tasks to pull one |
| item from the source and push that item into the source’s output node (via <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code>).</p> |
| </div> |
| <section id="examples"> |
| <h4>Examples<a class="headerlink" href="#examples" title="Permalink to this heading">¶</a></h4> |
| <ul class="simple"> |
| <li><p>In the <code class="docutils literal notranslate"><span class="pre">table_source</span></code> node the input table is divided into batches. A task is created for |
| each batch and that task calls <code class="docutils literal notranslate"><span class="pre">InputRecieved</span></code> on the node’s output.</p></li> |
| <li><p>In the <code class="docutils literal notranslate"><span class="pre">scan</span></code> node a task is created to start listing fragments from the dataset. Each listing |
| task then creates tasks to read batches from the fragment, asynchronously. When the batch is |
| full read in then a continuation schedules a new task with the exec plan. This task calls |
| <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> on the scan node’s output.</p></li> |
| </ul> |
| </section> |
| </section> |
| <section id="execnode-inputreceived"> |
| <h3><a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero8ExecNode13InputReceivedEP8ExecNode9ExecBatch" title="arrow::acero::ExecNode::InputReceived"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::InputReceived()</span></code></a><a class="headerlink" href="#execnode-inputreceived" title="Permalink to this heading">¶</a></h3> |
| <p>This method is called many times during the execution of a plan. It is how nodes pass data |
| to each other. An input node will call InputReceived on its output. Acero’s execution model |
| is push-based. Each node pushes data into its output by calling InputReceived and passing in |
| a batch of data.</p> |
| <p>The InputReceived method is often where the actual work happens for the node. For example, |
| a project node will execute its expressions and create a new expanded output batch. It will then |
| call InputReceived on its output. InputReceived will never be called on a source node. Sink |
| nodes will never call InputReceived. All other nodes will experience both.</p> |
| <p>Some nodes (often called “pipeline breakers”) must accumulate input before they can generate |
| any output. For example, a sort node must accumulate all input before it can sort the data and |
| generate output. In these nodes the InputReceived method will typically place the data into |
| some kind of accumulation queue. If the node doesn’t have enough data to operate then it will |
| not call InputReceived. This will then be the end of the current task.</p> |
| <section id="id1"> |
| <h4>Examples<a class="headerlink" href="#id1" title="Permalink to this heading">¶</a></h4> |
| <ul class="simple"> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">project</span></code> node runs its expressions, using the received batch as input for the expression. |
| A new batch is created from the input batch and the result of the expressions. The new batch is |
| given the same order index as the input batch and the node then calls <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> on its |
| output.</p></li> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">order_by</span></code> node inserts the batch into an accumulation queue. If this was the last batch |
| then the node will sort everything in the accumulation queue. The node will then call |
| <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> on the output for each batch in the sorted result. A new batch index will be |
| assigned to each batch. Note that this final output step might also occur as a result of a call |
| to <code class="docutils literal notranslate"><span class="pre">InputFinished</span></code> (described below).</p></li> |
| </ul> |
| </section> |
| </section> |
| <section id="execnode-inputfinished"> |
| <h3><a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero8ExecNode13InputFinishedEP8ExecNodei" title="arrow::acero::ExecNode::InputFinished"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::InputFinished()</span></code></a><a class="headerlink" href="#execnode-inputfinished" title="Permalink to this heading">¶</a></h3> |
| <p>This method will be called once per input. A node will call InputFinished on its output once it |
| knows how many batches it will be sending to that output. Normally this happens when the node is |
| finished working. For example, a scan node will call InputFinished once it has finsihed reading |
| its files. However, it could call it earlier if it knows (maybe from file metadata) how many |
| batches will be created.</p> |
| <p>Some nodes will use this signal to trigger some processing. For example, a sort node need to |
| wait until it has received all of its input before it can sort the data. It relies on the InputFinished |
| call to know this has happened.</p> |
| <p>Even if a node is not doing any special processing when finished (e.g. a project node or filter node |
| doesn’t need to do any end-of-stream processing) that node will still call InputFinished on its |
| output.</p> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>The InputFinished call might arrive before the final call to InputReceived. In fact, it could |
| even be sent out before any calls to InputReceived begin. For example, the table source node |
| always knows exactly how many batches it will be producing. It could choose to call InputFinished |
| before it ever calls InputReceived. If a node needs to do “end-of-stream” processing then it typically |
| uses an AtomicCounter which is a helper class to figure out when all of the data has arrived.</p> |
| </div> |
| <section id="id2"> |
| <h4>Examples<a class="headerlink" href="#id2" title="Permalink to this heading">¶</a></h4> |
| <ul class="simple"> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">order_by</span></code> checks to see if it has already received all its batches. If it has then it performs |
| the sorting step described in the <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> example. Before it starts sending output data it |
| checks to see how many output batches it has (it’s possible the batch size changed as part of the |
| accumulating or sorting) and calls <code class="docutils literal notranslate"><span class="pre">InputFinished</span></code> on the node’s output.</p></li> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">fetch</span></code> node, during a call to <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> realizes it has received all the rows it was |
| asked for. It calls <code class="docutils literal notranslate"><span class="pre">InputFinished</span></code> on its output immediately (even though its own <code class="docutils literal notranslate"><span class="pre">InputFinished</span></code> |
| method has not yet been called)</p></li> |
| </ul> |
| </section> |
| </section> |
| <section id="execnode-pauseproducing-execnode-resumeproducing"> |
| <h3><a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero8ExecNode14PauseProducingEP8ExecNode7int32_t" title="arrow::acero::ExecNode::PauseProducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::PauseProducing()</span></code></a> / <a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero8ExecNode15ResumeProducingEP8ExecNode7int32_t" title="arrow::acero::ExecNode::ResumeProducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::ResumeProducing()</span></code></a><a class="headerlink" href="#execnode-pauseproducing-execnode-resumeproducing" title="Permalink to this heading">¶</a></h3> |
| <p>These methods control backpressure. Some nodes may need to pause their input to avoid accumulating |
| too much data. For example, when the user is consuming the plan with a RecordBatchReader we use a |
| SinkNode. The SinkNode places data in a queue that the RecordBatchReader pulls from (this is a |
| conversion from a push-model to a pull-model). If the user is reading the RecordBatchReader slowly then |
| it is possible this queue will start to fill up. For another example we can consider the write node. |
| This node writes data to a filesystem. If the writes are slow then data might accumulate at the |
| write node. As a result, the write node would need to apply backpressure.</p> |
| <p>When a node realizes that it needs to apply some backpressure it will call PauseProducing on its input. |
| Once the node has enough space to continue it will then call ResumeProducing on its input. For example, |
| the SinkNode would pause when its queue gets too full. As the user continues to read from the |
| RecordBatchReader we can expect the queue to slowly drain. Once the queue has drained enough then the |
| SinkNode can call ResumeProducing.</p> |
| <p>Source nodes typically need to provide special behavior for PauseProducing and ResumeProducing. For |
| example, a scan node that is reading from a file can pause reading the file. However, some source nodes |
| may not be able to pause in any meaningful way. There is not much point in a table source node pausing |
| because its data is already in memory.</p> |
| <p>Nodes that are neither source or sink should still forward backpressure signals. For example, when |
| PauseProducing is called on a project node it should call PauseProducing on its input. If a node has |
| multiple inputs then it should forward the signal to every input.</p> |
| <section id="id3"> |
| <h4>Examples<a class="headerlink" href="#id3" title="Permalink to this heading">¶</a></h4> |
| <ul class="simple"> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">write</span></code> node, in its <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> method, adds a batch to a dataset writer’s queue. If the |
| dataset writer is then full it will return an unfinished future that will complete when it has more room. |
| The <code class="docutils literal notranslate"><span class="pre">write</span></code> node then calls <code class="docutils literal notranslate"><span class="pre">PauseProducing</span></code> on its input. It then adds a continuation to the future |
| that will call <code class="docutils literal notranslate"><span class="pre">ResumeProducing</span></code> on its input.</p></li> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">scan</span></code> node uses an <code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">AsyncTaskScheduler</span></code> to keep track of all the tasks it schedules. This |
| scheduler is throttled to limit how much concurrent I/O the <code class="docutils literal notranslate"><span class="pre">scan</span></code> node is allowed to perform. When |
| <code class="docutils literal notranslate"><span class="pre">PauseProducing</span></code> is called then the node will pause the scheduler. This means that any tasks queued |
| behind the throttle will not be submitted. However, any ongoing I/O will continue (backpressure can’t |
| take effect immediately). When <code class="docutils literal notranslate"><span class="pre">ResumeProducing</span></code> is called the <code class="docutils literal notranslate"><span class="pre">scan</span></code> node will unpause the scheduler.</p></li> |
| </ul> |
| </section> |
| </section> |
| <section id="execnode-stopproducing"> |
| <h3><a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero8ExecNode13StopProducingEv" title="arrow::acero::ExecNode::StopProducing"><code class="xref cpp cpp-func docutils literal notranslate"><span class="pre">ExecNode::StopProducing()</span></code></a><a class="headerlink" href="#execnode-stopproducing" title="Permalink to this heading">¶</a></h3> |
| <p>StopProducing is called when a plan needs to end early. This can happen because the user cancelled |
| the plan and it can happen because an error occurred. Most nodes do not need to do anything here. |
| There is no expectation or requirement that a node sends any remaining data it has. Any node that |
| schedules tasks (e.g. a source node) should stop producing new data.</p> |
| <p>In addition to plan-wide cancellation, a node may call this method on its input if it has decided |
| that it has recevied all the data that it needs. However, because of parallelism, a node may still |
| receive a few calls to <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code> after it has stopped its input.</p> |
| <p>If any external reosurces are used then cleanup should happen as part of this call.</p> |
| <section id="id4"> |
| <h4>Examples<a class="headerlink" href="#id4" title="Permalink to this heading">¶</a></h4> |
| <ul class="simple"> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">asofjoin</span></code> node has a dedicated processing thread the communicates with the main Acero threads |
| using a queue. When <code class="docutils literal notranslate"><span class="pre">StopProducing</span></code> is called the node inserts a poison pill into the queue. This |
| tells the processing thread to stop immediately. Once the processing thread stops it marks its external |
| task (described below) as completed which allows the plan to finish.</p></li> |
| <li><p>The <code class="docutils literal notranslate"><span class="pre">fetch</span></code> node, in <code class="docutils literal notranslate"><span class="pre">InputReceived</span></code>, may decide that it has all the data it needs. It can then call |
| <code class="docutils literal notranslate"><span class="pre">StopProducing</span></code> on its input.</p></li> |
| </ul> |
| </section> |
| </section> |
| <section id="initialization-construction-destruction"> |
| <h3>Initialization / Construction / Destruction<a class="headerlink" href="#initialization-construction-destruction" title="Permalink to this heading">¶</a></h3> |
| <p>Simple initialization logic (that cannot error) can be done in the constructor. If the initialization |
| logic may return an invalid status then it can either be done in the exec node’s factory method or |
| the <code class="docutils literal notranslate"><span class="pre">Init</span></code> method. The factory method is preferred for simple validation. The <code class="docutils literal notranslate"><span class="pre">Init</span></code> method is |
| preferred if the intialization might do expensive allocation or other resource consumption. <code class="docutils literal notranslate"><span class="pre">Init</span></code> will |
| always be called before <code class="docutils literal notranslate"><span class="pre">StartProducing</span></code> is called. Initialization could also be done in |
| <code class="docutils literal notranslate"><span class="pre">StartProducing</span></code> but keep in mind that other nodes may have started by that point.</p> |
| <p>In addition, there is a <code class="docutils literal notranslate"><span class="pre">Validate</span></code> method that can be overloaded to provide custom validation. This |
| method is normally called before <code class="docutils literal notranslate"><span class="pre">Init</span></code> but after all inputs and outputs have been added.</p> |
| <p>Finalization happens today in the destructor. There are a few examples today where that might be slow. |
| For example, in the write node, if there was an error during the plan, then we might close out some open |
| files here. Should there be significant finalization that is either asynchronous or could potentially |
| trigger an error then we could introduce a Finalize method to the ExecNode lifecycle. It hasn’t been |
| done yet only because it hasn’t been needed.</p> |
| </section> |
| <section id="summary"> |
| <h3>Summary<a class="headerlink" href="#summary" title="Permalink to this heading">¶</a></h3> |
| <table class="table" id="id5"> |
| <caption><span class="caption-text">ExecNode Lifecycle</span><a class="headerlink" href="#id5" title="Permalink to this table">¶</a></caption> |
| <colgroup> |
| <col style="width: 20.0%" /> |
| <col style="width: 40.0%" /> |
| <col style="width: 40.0%" /> |
| </colgroup> |
| <thead> |
| <tr class="row-odd"><th class="head"><p>Method Name</p></th> |
| <th class="head"><p>This is called when…</p></th> |
| <th class="head"><p>A node calls this when…</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p>StartProducing</p></td> |
| <td><p>The plan is starting</p></td> |
| <td><p>N/A</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>InputReceived</p></td> |
| <td><p>Data is received from the input</p></td> |
| <td><p>To send data to the output</p></td> |
| </tr> |
| <tr class="row-even"><td><p>InputFinished</p></td> |
| <td><p>The input knows how many batches there are</p></td> |
| <td><p>The node can tell its output how many batches there are</p></td> |
| </tr> |
| <tr class="row-odd"><td><p>StopProducing</p></td> |
| <td><p>A plan is aborted or an output has enough data</p></td> |
| <td><p>A node has all the data it needs</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </section> |
| </section> |
| <section id="extending-acero"> |
| <h2>Extending Acero<a class="headerlink" href="#extending-acero" title="Permalink to this heading">¶</a></h2> |
| <p>Acero instantiates a singleton <a class="reference internal" href="../api/acero.html#_CPPv4N5arrow5acero19ExecFactoryRegistryE" title="arrow::acero::ExecFactoryRegistry"><code class="xref cpp cpp-class docutils literal notranslate"><span class="pre">ExecFactoryRegistry</span></code></a> which maps between names and exec node |
| factories (methods which create an ExecNode from options). To create a new ExecNode you can register |
| the node with this registry and your node will now be usable by Acero. If you would like to be able |
| to use this node with Substrait plans you will also need to configure the Substrait registry so that it |
| knows how to map Substrait to your custom node.</p> |
| <p>This means that you can create and add new nodes to Acero without recompiling Acero from source.</p> |
| </section> |
| <section id="scheduling-and-parallelism"> |
| <h2>Scheduling and Parallelism<a class="headerlink" href="#scheduling-and-parallelism" title="Permalink to this heading">¶</a></h2> |
| <p>There are many ways in that data engines can utilize multiple compute resources (e.g. multiple cores). |
| Before we get into the details of Acero’s scheduling we will cover a few high level topics.</p> |
| <section id="parallel-execution-of-plans"> |
| <h3>Parallel Execution of Plans<a class="headerlink" href="#parallel-execution-of-plans" title="Permalink to this heading">¶</a></h3> |
| <p>Users may want to execute multiple plans concurrently and they are welcome to do so. However, Acero has no |
| concept of inter-plan scheduling. Each plan will attempt to maximize its usage of compute resources and |
| there will likely be contention of CPU and memory and disk resources. If plans are using the default CPU & |
| I/O thread pools this will be mitigated somewhat since they will share the same thread pool.</p> |
| </section> |
| <section id="locally-distributed-plans"> |
| <h3>Locally Distributed Plans<a class="headerlink" href="#locally-distributed-plans" title="Permalink to this heading">¶</a></h3> |
| <p>A common way to tackle multi-threading is to split the input into partitions and then create a plan for |
| each partition and then merge the results from these plans in some way. For example, let’s assume you |
| have 20 files and 10 cores and you want to read and sort all the data. You could create a plan for every |
| 2 files to read and sort those files. Then you could create one extra plan that takes the input from these |
| 10 child plans and merges the 10 input streams in a sorted fashion.</p> |
| <p>This approach is popular because it is how queries are distributed across mulitple servers and so it |
| is widely supported and well understood. Acero does not do this today but there is no reason to prevent it. |
| Adding shuffle & partition nodes to Acero should be a high priority and would enable Acero to be used by |
| distributed systems. Once that has been done then it should be possible to do a local shuffle (local |
| meaning exchanging between multiple exec plan instances on a single system) if desired.</p> |
| <figure class="align-default" id="id6"> |
| <img alt="../../_images/dist_plan.svg" src="../../_images/dist_plan.svg" /><figcaption> |
| <p><span class="caption-text">A distributed plan can provide parallelism even if the plans themselves run serially</span><a class="headerlink" href="#id6" title="Permalink to this image">¶</a></p> |
| </figcaption> |
| </figure> |
| </section> |
| <section id="pipeline-parallelism"> |
| <h3>Pipeline Parallelism<a class="headerlink" href="#pipeline-parallelism" title="Permalink to this heading">¶</a></h3> |
| <p>Acero attempts to maximize parallelism using pipeline parallelism. As each batch of data arrives from the |
| source we immediately create a task and start processing it. This means we will likely start processing |
| batch X before the processing of batch X-1 has completed. This is very flexible and powerful. However, it also |
| means that properly implementing an ExecNode is difficult.</p> |
| <p>For example, an ExecNode’s InputReceived method should be reentrant. In other words, it should be expected |
| that InputReceived will be called before the previous call to InputReceived has completed. This means that |
| nodes with any kind of mutable state will need mutexes or similar mechanisms to protect that state from race |
| conditions. It also means that tasks can easily get out of order and nodes should not expect any particular ordering |
| of their input (more on this later).</p> |
| <figure class="align-default" id="id7"> |
| <img alt="../../_images/pipeline.svg" src="../../_images/pipeline.svg" /><figcaption> |
| <p><span class="caption-text">An example of pipeline parallelism on a system with 3 CPU threads and 2 I/O threads</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p> |
| </figcaption> |
| </figure> |
| </section> |
| <section id="asynchronicity"> |
| <h3>Asynchronicity<a class="headerlink" href="#asynchronicity" title="Permalink to this heading">¶</a></h3> |
| <p>Some operations take a long time and may not require the CPU. Reading data from the filesystem is one example. If we |
| only have one thread per core then time will be wasted while we wait for these operations to complete. There |
| are two common solutions to this problem. A synchronous solution is often to create more threads than there are |
| cores with the expectation that some of them will be blocked and that is ok. This approach tends to be simpler |
| but it can lead to excess thread contention and requires fine-tuning.</p> |
| <p>Another solution is to make the slow operations asynchronous. When the slow operation starts the caller gives up |
| the thread and allows other tasks to run in the meantime. Once the slow operation finishes then a new task is |
| created to take the result and continue processing. This helps to minimize thread contention but tends to be |
| more complex to implement.</p> |
| <p>Due to a lack of standard C++ async APIs, Acero uses a combination of the two approaches. Acero has two thread pools. |
| The first is the CPU thread pool. This thread pool has one thread per core. Tasks in this thread pool should never |
| block (beyond minor delays for synchornization) and should generally be actively using CPU as much as possible. Threads |
| on the I/O thread pool are expected to spend most of the time idle. They should avoid doing any CPU-intensive work. |
| Their job is basically to wait for data to be available and schedule follow-up tasks on the CPU thread pool.</p> |
| <figure class="align-default" id="id8"> |
| <img alt="../../_images/async.svg" src="../../_images/async.svg" /><figcaption> |
| <p><span class="caption-text">Arrow achieves asynchronous execution by combining CPU & I/O thread pools</span><a class="headerlink" href="#id8" title="Permalink to this image">¶</a></p> |
| </figcaption> |
| </figure> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>Most nodes in Acero do not need to worry about asynchronicity. They are fully synchronous and do not spawn tasks.</p> |
| </div> |
| </section> |
| <section id="task-per-pipeline-and-sometimes-beyond"> |
| <h3>Task per Pipeline (and sometimes beyond)<a class="headerlink" href="#task-per-pipeline-and-sometimes-beyond" title="Permalink to this heading">¶</a></h3> |
| <p>An engine could choose to create a thread task for every execution of a node. However, without careful scheduling, |
| this leads to problems with cache locality. For example, let’s assume we have a basic plan consisting of three |
| exec nodes, scan, project, and then filter (this is a very common use case). Now let’s assume there are 100 batches. |
| In a task-per-operator model we would have tasks like “Scan Batch 5”, “Project Batch 5”, and “Filter Batch 5”. Each |
| of those tasks is potentially going to access the same data. For example, maybe the <cite>project</cite> and <cite>filter</cite> nodes need |
| to read the same column. A column which is intially created in a decode phase of the <cite>scan</cite> node. To maximize cache |
| utiliziation we would need to carefully schedule our tasks to ensure that all three of those tasks are run consecutively |
| and assigned to the same CPU core.</p> |
| <p>To avoid this problem we design tasks that run through as many nodes as possible before the task ends. This sequence |
| of nodes is often referred to as a “pipeline” and the nodes that end the pipeline (and thus end the task) are often |
| called “pipeline breakers”. Some nodes might even fall somewhere in between. For example, in a hash join node, when |
| we receive a batch on the probe side, and the hash table has been built, we do not need to end the task and instead keep |
| on running. This means that tasks might sometimes end at the join node and might sometimes continue past the join node.</p> |
| <figure class="align-default" id="id9"> |
| <img alt="../../_images/pipeline_task.svg" src="../../_images/pipeline_task.svg" /><figcaption> |
| <p><span class="caption-text">A logical view of pipelines in a plan and two tasks, showing that pipeline boundaries may vary during a plan</span><a class="headerlink" href="#id9" title="Permalink to this image">¶</a></p> |
| </figcaption> |
| </figure> |
| </section> |
| <section id="thread-pools-and-schedulers"> |
| <h3>Thread Pools and Schedulers<a class="headerlink" href="#thread-pools-and-schedulers" title="Permalink to this heading">¶</a></h3> |
| <p>The CPU and I/O thread pools are a part of the core Arrow-C++ library. They contain a FIFO queue of tasks and will |
| execute them as a thread is available. For Acero we need additional capabilities. For this we use the |
| AsyncTaskScheduler. In the simplest mode of operation the scheduler simply submits tasks to an underlying thread pool. |
| However, it is also capable of creating sub-schedulers which can apply throttling, prioritization, and task tracking:</p> |
| <blockquote> |
| <div><ul class="simple"> |
| <li><p>A throttled scheduler associates a cost with each task. Tasks are only submitted to the underlying scheduler |
| if there is room. If there is not then the tasks are placed in a queue. The write node uses a throttle of size |
| 1 to avoid reentrantly calling the dataset writer (the dataset writer does its own internal scheduling). A throttled |
| scheduler can be manually paused and unpaused. When paused all tasks are queued and queued tasks will not be submitted |
| even if there is room. This can be useful in source nodes to implement PauseProducing and ResumeProducing.</p></li> |
| <li><p>Priority can be applied to throttled schedulers to control the order in which queued tasks are submitted. If |
| there is room a task is submitted immediately (regardless of priority). However, if the throttle is full then |
| the task is queued and subject to prioritization. The scan node throttles how many read requests it generates |
| and prioritizes reading a dataset in order, if possible.</p></li> |
| <li><p>A task group can be used to keep track of a collection of tasks and run a finalization task when all of the |
| tasks have completed. This is useful for fork-join style problems. The write node uses a task group to close |
| a file once all outstanding write tasks for the file have completed.</p></li> |
| </ul> |
| </div></blockquote> |
| <p>There is research and examples out there for different ways to prioritize tasks in an execution engine. Acero has not |
| yet had to address this problem. Let’s go through some common situations:</p> |
| <blockquote> |
| <div><ul class="simple"> |
| <li><p>Engines will often prioritize reading from the build side of a join node before reading from the probe side. This |
| would be more easily handled in Acero by applying backpressure.</p></li> |
| <li><p>Another common use case is to control memory accumulation. Engines will prioritize tasks which are closer to the |
| sink node in an effort to relieve memory pressure. However, Acero currently assumes that spilling will be added |
| at pipeline breakers and that memory usage in a plan will be more or less static (per core) and well below the |
| limits of the hardware. This might change if Acero needs to be used in an environment where there are many compute |
| resources and limited memory (e.g. a GPU)</p></li> |
| <li><p>Engines will often use work stealing algorithms to prioritize running tasks on the same core to improve cache |
| locality. However, since Acero uses a task-per-pipeline model there isn’t much lost opportunity for cache |
| parallelism that a scheduler could reclaim. Tasks only end when there is no more work that can be done with the data.</p></li> |
| </ul> |
| </div></blockquote> |
| <p>While there is not much prioritzation in place in Acero today we do have the tools to apply it should we need to.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>In addition to the AsyncTaskScheduler there is another class called the TaskScheduler. This class predates the |
| AsyncTaskScheduler and was designed to offer task tracking for highly efficient synchronous fork-join workloads. |
| If this specialized purpose meets your needs then you may consider using it. It would be interesting to profile |
| this against the AsyncTaskScheduler and see how closely the two compare.</p> |
| </div> |
| </section> |
| <section id="intra-node-parallelism"> |
| <h3>Intra-node Parallelism<a class="headerlink" href="#intra-node-parallelism" title="Permalink to this heading">¶</a></h3> |
| <p>Some nodes can potentially exploit parallelism within a task. For example, in the scan node we can decode |
| columns in parallel. In the hash join node, parallelism is sometimes exploited for complex tasks such as |
| building the hash table. This sort of parallelism is less common but not neccesarily discouraged. Profiling should |
| be done first though to ensure that this extra parallelism will be helpful in your workload.</p> |
| </section> |
| <section id="all-work-happens-in-tasks"> |
| <h3>All Work Happens in Tasks<a class="headerlink" href="#all-work-happens-in-tasks" title="Permalink to this heading">¶</a></h3> |
| <p>All work in Acero happens as part of a task. When a plan is started the AsyncTaskScheduler is created and given an |
| initial task. This initial task calls StartProducing on the nodes. Tasks may schedule additional tasks. For example, |
| source nodes will usually schedule tasks during the call to StartProducing. Pipeline breakers will often schedule tasks |
| when they have accumulated all the data they need. Once all tasks in a plan are finished then the plan is considered |
| done.</p> |
| <p>Some nodes use external threads. These threads must be registered as external tasks using the BeginExternalTask method. |
| For example, the asof join node uses a dedicated processing thread to achieve serial execution. This dedicated thread |
| is registered as an external task. External tasks should be avoided where possible because they require careful |
| handling to avoid deadlock in error situations.</p> |
| </section> |
| </section> |
| <section id="ordered-execution"> |
| <h2>Ordered Execution<a class="headerlink" href="#ordered-execution" title="Permalink to this heading">¶</a></h2> |
| <p>Some nodes either establish an ordering to their outgoing batches or they need to be able to process batches in order. |
| Acero handles ordering using the <cite>batch_index</cite> property on an ExecBatch. If a node has a determinstic output order |
| then it should apply a batch index on batches that it emits. For example, the OrderByNode applies a new ordering to |
| batches (regardless of the incoming ordering). The scan node is able to attach an implicit ordering to batches which |
| reflects the order of the rows in the files being scanned.</p> |
| <p>If a node needs to process data in order then it is a bit more complicated. Because of the parallel nature of execution |
| we cannot guarantee that batches will arrive at a node in order. However, they can generally be expected to be “mostly |
| ordered”. As a result, we can insert the batches into a sequencing queue. The sequencing queue is given a callback which |
| is guaranteed to run on the batches, serially, in order. For example, the fetch node uses a sequencing queue. The callback |
| checks to see if we need to include part or all of the batch, and then slices the batch if needed.</p> |
| <p>Even if a node does not care about order it should try and maintain the batch index if it can. The project and filter |
| nodes do not care about order but they ensure that output batches keep the same index as their input batches. The filter |
| node will even emit empty batches if it needs to so that it can maintain the batch order without gaps.</p> |
| <figure class="align-default" id="id10"> |
| <img alt="../../_images/ordered.svg" src="../../_images/ordered.svg" /><figcaption> |
| <p><span class="caption-text">An example of ordered execution</span><a class="headerlink" href="#id10" title="Permalink to this image">¶</a></p> |
| </figcaption> |
| </figure> |
| </section> |
| <section id="partitioned-execution"> |
| <h2>Partitioned Execution<a class="headerlink" href="#partitioned-execution" title="Permalink to this heading">¶</a></h2> |
| <p>A stream is partitioned (or sometimes called segmented) if rows are grouped together in some way. Currently there is not |
| a formal notion of partitioning. However, one is starting to develop (e.g. segmented aggregation) and we may end up |
| introducing a more formal notion of partitions to Acero at some point as well.</p> |
| </section> |
| <section id="spillover"> |
| <h2>Spillover<a class="headerlink" href="#spillover" title="Permalink to this heading">¶</a></h2> |
| <p>Spillover has not yet been implemented in Acero.</p> |
| </section> |
| <section id="distributed-execution"> |
| <h2>Distributed Execution<a class="headerlink" href="#distributed-execution" title="Permalink to this heading">¶</a></h2> |
| <p>There are certain exec nodes which are useful when an engine is used in a distributed environment. The terminology |
| can vary so we will use the Substrait terminology. An exchange node sends data to different workers. Often this is |
| a partitioned exchange so that Acero is expected to partition each batch and distribute partitions across N different |
| workers. On the other end we have the capture node. This node receives data from different workers.</p> |
| <p>These nodes do not exist in Acero today. However, they would be in scope and we hope to have such nodes someday.</p> |
| </section> |
| <section id="profiling-tracing"> |
| <h2>Profiling & Tracing<a class="headerlink" href="#profiling-tracing" title="Permalink to this heading">¶</a></h2> |
| <p>Acero’s tracing is currently half-implemented and there are major gaps in profiling tools. However, there has been some |
| effort at tracing with open telemetry and most of the neccesary pieces are in place. The main thing currently lacking is |
| some kind of effective visualization of the tracing results.</p> |
| <p>In order to use the tracing that is present today you will need to build with Arrow with <cite>ARROW_WITH_OPENTELEMETRY=ON</cite>. |
| Then you will need to set the environment variable <cite>ARROW_TRACING_BACKEND=otlp_http</cite>. This will configure open telemetry |
| to export trace results (as OTLP) to the HTTP endpoint <a class="reference external" href="http://localhost:4318/v1/traces">http://localhost:4318/v1/traces</a>. You will need to configure an |
| open telemetry collector to collect results on that endpoint and you will need to configure a trace viewer of some kind |
| such as Jaeger: <a class="reference external" href="https://www.jaegertracing.io/docs/1.21/opentelemetry/">https://www.jaegertracing.io/docs/1.21/opentelemetry/</a></p> |
| </section> |
| <section id="benchmarking"> |
| <h2>Benchmarking<a class="headerlink" href="#benchmarking" title="Permalink to this heading">¶</a></h2> |
| <p>The most complete macro benchmarking for Acero is provided by <a class="reference external" href="https://github.com/voltrondata-labs/arrowbench">https://github.com/voltrondata-labs/arrowbench</a> |
| These include a set of TPC-H benchmarks, executed from the R-dplyr integration, which are run on every Arrow commit and |
| reported to Conbench at <a class="reference external" href="https://conbench.ursa.dev/">https://conbench.ursa.dev/</a></p> |
| <p>In addition to these TPC-H benchmarks there are a number of micro-benchmarks for various nodes (hash-join, asof-join, |
| etc.) Finally, the compute functions themselves should mostly have micro-benchmarks. For more on micro benchmarks you |
| can refer to <a class="reference external" href="https://arrow.apache.org/docs/developers/benchmarks.html">https://arrow.apache.org/docs/developers/benchmarks.html</a></p> |
| <p>Any new functionality should include micro benchmarks to avoid regressions.</p> |
| </section> |
| <section id="bindings"> |
| <h2>Bindings<a class="headerlink" href="#bindings" title="Permalink to this heading">¶</a></h2> |
| <section id="public-api"> |
| <h3>Public API<a class="headerlink" href="#public-api" title="Permalink to this heading">¶</a></h3> |
| <p>The public API for Acero consists of Declaration and the various DeclarationToXyz methods. In addition the |
| options classes for each node are part of the public API. However, nodes are extensible and so this API is |
| extensible.</p> |
| </section> |
| <section id="r-dplyr"> |
| <h3>R (dplyr)<a class="headerlink" href="#r-dplyr" title="Permalink to this heading">¶</a></h3> |
| <p>Dplyr is an R library for programmatically building queries. The arrow-r package has dplyr bindings which |
| adapt the dplyr API to create Acero execution plans. In addition, there is a dplyr-substrait backend that |
| is in development which could eventually replace the Acero-aware binding.</p> |
| </section> |
| <section id="python"> |
| <h3>Python<a class="headerlink" href="#python" title="Permalink to this heading">¶</a></h3> |
| <p>The pyarrow library binds to Acero in two different ways. First, there is a direct binding in pyarrow.acero |
| which directly binds to the public API. Second, there are a number of compute utilities like |
| pyarrow.Table.group_by which uses Acero, though this is invisible to the user.</p> |
| </section> |
| <section id="java"> |
| <h3>Java<a class="headerlink" href="#java" title="Permalink to this heading">¶</a></h3> |
| <p>The Java implementation exposes some capabilities from Arrow datasets. These use Acero implicitly. There |
| are no direct bindings to Acero or Substrait in the Java implementation today.</p> |
| </section> |
| </section> |
| <section id="design-philosophies"> |
| <h2>Design Philosophies<a class="headerlink" href="#design-philosophies" title="Permalink to this heading">¶</a></h2> |
| <section id="engine-independent-compute"> |
| <h3>Engine Independent Compute<a class="headerlink" href="#engine-independent-compute" title="Permalink to this heading">¶</a></h3> |
| <p>If a node requires complex computation then it should encapsulate that work in abstractions that don’t depend on |
| any particular engine design. For example, the hash join node uses utilities such as a row encoder, a hash table, |
| and an exec batch builder. Other places share implementations of sequencing queues and row segmenters. The node |
| itself should be kept minimal and simply maps from Acero to the abstraction.</p> |
| <p>This helps to decouple designs from Acero’s design details and allows them to be more resilant to changes in the |
| engine. It also helps to promote these abstractions as capabilities on their own. Either for use in other engines |
| or for potential new additions to pyarrow as compute utilities.</p> |
| </section> |
| <section id="make-tasks-not-threads"> |
| <h3>Make Tasks not Threads<a class="headerlink" href="#make-tasks-not-threads" title="Permalink to this heading">¶</a></h3> |
| <p>If you need to run something in parallel then you should use thread tasks and not dedicated threads.</p> |
| <blockquote> |
| <div><ul class="simple"> |
| <li><p>This keeps the thread count down (reduces thread contention and context switches)</p></li> |
| <li><p>This prevents deadlock (tasks get cancelled automatically in the event of a failure)</p></li> |
| <li><p>This simplifies profiling (Tasks can be easily measured, easier to know where all the work is)</p></li> |
| <li><p>This makes it possible to run without threads (sometimes users are doing their own threading and |
| sometimes we need to run in thread-restricted environments like emscripten)</p></li> |
| </ul> |
| </div></blockquote> |
| <p>Note: we do not always follow this advice currently. There is a dedicated process thread in the asof join |
| node. Dedicated threads are “ok” for experimental use but we’d like to migrate away from them.</p> |
| </section> |
| <section id="don-t-block-on-cpu-threads"> |
| <h3>Don’t Block on CPU Threads<a class="headerlink" href="#don-t-block-on-cpu-threads" title="Permalink to this heading">¶</a></h3> |
| <p>If you need to run a potentially long running activity that is not actively using CPU resources (e.g. reading from |
| disk, network I/O, waiting on an external library using its own threads) then you should use asynchronous utilities |
| to ensure that you do not block CPU threads.</p> |
| </section> |
| <section id="don-t-reinvent-the-wheel"> |
| <h3>Don’t Reinvent the Wheel<a class="headerlink" href="#don-t-reinvent-the-wheel" title="Permalink to this heading">¶</a></h3> |
| <p>Each node should not be a standalone island of utilities. Where possible, computation should be pushed |
| either into compute functions or into common shared utilities. This is the only way a project as large as |
| this can hope to be maintained.</p> |
| </section> |
| <section id="avoid-query-optimization"> |
| <h3>Avoid Query Optimization<a class="headerlink" href="#avoid-query-optimization" title="Permalink to this heading">¶</a></h3> |
| <p>Writing an efficient Acero plan can be challenging. For example, filter expressions and column selection |
| should be pushed down into the scan node so that the data isn’t read from disk. Expressions should be |
| simplified and common sub-expressions factored out. The build side of a hash join node should be the |
| smaller of the two inputs.</p> |
| <p>However, figuring these problems out is a challenge reserved for a query planner or a query optimizer. |
| Creating a query optimizer is a challenging task beyond the scope of Acero. With adoption of Substrait |
| we hope utilities will eventually emerge that solve these problems. As a result, we generally avoid doing |
| any kind of query optimization within Acero. Acero should interpret declarations as literally as possible. |
| This helps reduce maintenance and avoids surprises.</p> |
| <p>We also realize that this is not always possible. For example, the hash join node currently detects if there |
| is a chain of hash join operators and, if there is, it configure bloom filters between the operators. This is |
| technically a task that could be left to a query optimizer. However, this behavior is rather specific to Acero |
| and fairly niche and so it is unlikely it will be introduced to an optimizer anytime soon.</p> |
| </section> |
| </section> |
| <section id="performance-guidelines"> |
| <h2>Performance Guidelines<a class="headerlink" href="#performance-guidelines" title="Permalink to this heading">¶</a></h2> |
| <section id="batch-size"> |
| <h3>Batch Size<a class="headerlink" href="#batch-size" title="Permalink to this heading">¶</a></h3> |
| <p>Perhaps the most discussed performance criteria is batch size. Acero was originally |
| designed based on research to follow a morsel-batch model. Tasks are created based on |
| a large batch of rows (a morsel). The goal is for the morsel to be large enough to justify |
| the overhead of a task. Within a task the data is further subdivided into batches. |
| Each batch should be small enough to fit comfortable into CPU cache (often the L2 cache).</p> |
| <p>This sets up two loops. The outer loop is parallel and the inner loop is not:</p> |
| <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">morsel</span> <span class="ow">in</span> <span class="n">dataset</span><span class="p">:</span> <span class="c1"># parallel</span> |
| <span class="k">for</span> <span class="n">batch</span> <span class="ow">in</span> <span class="n">morsel</span><span class="p">:</span> |
| <span class="n">run_pipeline</span><span class="p">(</span><span class="n">batch</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>The advantage of this style of execution is that successive nodes (or successive operations |
| within an exec node) that access the same column are likely to benefit from cache. It also |
| is essential for functions that require random access to data. It maximizes parallelism while |
| minimizing the data transfer from main memory to CPU cache.</p> |
| <figure class="align-default" id="id11"> |
| <img alt="../../_images/microbatch.svg" src="../../_images/microbatch.svg" /><figcaption> |
| <p><span class="caption-text">If multiple passes through the data are needed (or random access) and the batch is much bigger |
| then the cache then performance suffers. Breaking the task into smaller batches helps improve |
| task locality.</span><a class="headerlink" href="#id11" title="Permalink to this image">¶</a></p> |
| </figcaption> |
| </figure> |
| <p>The morsel/batch model is reflected in a few places in Acero:</p> |
| <blockquote> |
| <div><ul class="simple"> |
| <li><p>In most source nodes we will try and grab batches of 1Mi rows. This is often configurable.</p></li> |
| <li><p>In the source node we then iterate and slice off batches of 32Ki rows. This is not currently |
| configurable.</p></li> |
| <li><p>The hash join node currently requires that a batches contain at 32Ki rows or less as it uses |
| 16-bit signed integers as row indices in some places.</p></li> |
| </ul> |
| </div></blockquote> |
| <p>However, this guidance is debateable. Profiling has shown that we do not get any real benefit |
| from moving to a smaller batch size. It seems any advantage we do get is lost in per-batch |
| overhead. Most of this overhead appears to be due to various per-batch allocations. In addition, |
| depending on your hardware, it’s not clear that CPU Cache<->RAM will always be the bottleneck. A |
| combination of linear access, pre-fetch, and high CPU<->RAM bandwidth can alleviate the penalty |
| of cache misses.</p> |
| <p>As a result, this section is included in the guide to provide historical context, but should not |
| be considered binding.</p> |
| </section> |
| </section> |
| <section id="ongoing-deprecated-work"> |
| <h2>Ongoing & Deprecated Work<a class="headerlink" href="#ongoing-deprecated-work" title="Permalink to this heading">¶</a></h2> |
| <p>The following efforts are ongoing. They are described here to explain certain duplication in the |
| code base as well as explain types that are going away.</p> |
| <section id="scanner-v2"> |
| <h3>Scanner v2<a class="headerlink" href="#scanner-v2" title="Permalink to this heading">¶</a></h3> |
| <p>The scanner is currently a node in the datasets module registered with the factory registry as “scan”. |
| This node was written prior to Acero and made extensive use of AsyncGenerator to scan multiple files |
| in parallel. Unfortunately, the use of AsyncGenerator made the scan difficult to profile, difficult |
| to debug, and impossible to cancel. A new scan node is in progress. It is currently registered with |
| the name “scan2”. The new scan node uses the AsyncTaskScheduler instead of AsyncGenerator and should |
| provide additional features such as the ability to skip rows and handle nested column projection (for |
| formats that support it)</p> |
| </section> |
| <section id="orderbysink-and-selectksink"> |
| <h3>OrderBySink and SelectKSink<a class="headerlink" href="#orderbysink-and-selectksink" title="Permalink to this heading">¶</a></h3> |
| <p>These two exec nodes provided custom sink implementations. They were written before ordered execution |
| was added to Acero and were the only way to generate ordered ouptut. However, they had to be placed |
| at the end of a plan and the fact that they were custom sink nodes made them difficult to describe with |
| Declaration. The OrderByNode and FetchNode replace these. These are kept at the moment until existing |
| bindings move away from them.</p> |
| </section> |
| </section> |
| <section id="upstreaming-changes"> |
| <h2>Upstreaming Changes<a class="headerlink" href="#upstreaming-changes" title="Permalink to this heading">¶</a></h2> |
| <p>Acero is designed so that it can be extended without recompilation. You can easily add new compute |
| functions and exec nodes without creating a fork or compiling Acero. However, as you develop new |
| features that are generally useful, we hope you will make time to upstream your changes.</p> |
| <p>Even though we welcome these changes we have to admit that there is a cost to this process. Upstreaming |
| code requires that the new module behave correctly, but that is typically the easier part to review. |
| More importantly, upstreaming code is a process of transferring the maintenance burden from yourself to |
| the wider Arrow C++ project maintainers. This requires a deep understanding of the code by maintainers, |
| it requires the code be consistent with the style of the project, and it requires that the code be well |
| tested with unit tests to aid in regression.</p> |
| <p>Because of this, we highly recommend taking the following steps:</p> |
| <ul class="simple"> |
| <li><p>As you are starting out you should send a message to the mailing list announcing your intentions and |
| design. This will help you determine if there is wider interest in the feature and others may have |
| ideas or suggestions to contribute early on in the process.</p> |
| <ul> |
| <li><p>If there is not much interest in the feature then keep in mind that it may be difficult to eventually |
| upstream the change. The maintenance capacity of the team is limited and we try and prioritize |
| features that are in high demand.</p></li> |
| </ul> |
| </li> |
| <li><p>We recommend developing and testing the change on your own fork until you get it to a point where you |
| are fairly confident things are working correctly. If the change is large then you might also think |
| about how you can break up the change into smaller pieces. As you do this you can share both the larger |
| PR (as a draft PR or a branch on your local fork) and the smaller PRs. This way we can see the context |
| of the smaller PRs. However, if you do break things up, smaller PRs should still ideally stand on their |
| own.</p></li> |
| <li><p>Any PR will need to have the following:</p> |
| <ul> |
| <li><p>Unit tests convering the new functionality</p></li> |
| <li><p>Microbenchmarks if there is any significant compute work going on</p></li> |
| <li><p>Examples demonstrating how to use the new feature</p></li> |
| <li><p>Updates to the API reference and this guide</p></li> |
| <li><p>Passing CI (you can enable Github Actions on your fork and that will allow most CI jobs to run before |
| you create your PR)</p></li> |
| </ul> |
| </li> |
| </ul> |
| </section> |
| </section> |
| |
| |
| </div> |
| |
| |
| <!-- Previous / next buttons --> |
| <div class='prev-next-area'> |
| <a class='left-prev' id="prev-link" href="substrait.html" title="previous page"> |
| <i class="fas fa-angle-left"></i> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">previous</p> |
| <p class="prev-next-title">Using Acero with Substrait</p> |
| </div> |
| </a> |
| <a class='right-next' id="next-link" href="../io.html" title="next page"> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">next</p> |
| <p class="prev-next-title">Input / output and filesystems</p> |
| </div> |
| <i class="fas fa-angle-right"></i> |
| </a> |
| </div> |
| |
| </main> |
| |
| |
| </div> |
| </div> |
| |
| <script src="../../_static/scripts/pydata-sphinx-theme.js?digest=1999514e3f237ded88cf"></script> |
| |
| <footer class="footer mt-5 mt-md-0"> |
| <div class="container"> |
| |
| <div class="footer-item"> |
| <p class="copyright"> |
| © Copyright 2016-2023 Apache Software Foundation.<br> |
| </p> |
| </div> |
| |
| <div class="footer-item"> |
| <p class="sphinx-version"> |
| Created using <a href="http://sphinx-doc.org/">Sphinx</a> 6.2.0.<br> |
| </p> |
| </div> |
| |
| </div> |
| </footer> |
| <script type="text/javascript" src="/docs/_static/versionwarning.js"></script> |
| |
| </body> |
| </html> |