| |
| <!DOCTYPE html> |
| |
| |
| <html lang="en" data-content_root="../../../" data-theme="auto"> |
| |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> |
| |
| <title>datafusion.user_defined — Apache DataFusion in Python documentation</title> |
| |
| |
| |
| <script data-cfasync="false"> |
| document.documentElement.dataset.mode = localStorage.getItem("mode") || "auto"; |
| document.documentElement.dataset.theme = localStorage.getItem("theme") || "auto"; |
| </script> |
| <!-- |
| this give us a css class that will be invisible only if js is disabled |
| --> |
| <noscript> |
| <style> |
| .pst-js-only { display: none !important; } |
| |
| </style> |
| </noscript> |
| |
| <!-- Loaded before other Sphinx assets --> |
| <link href="../../../_static/styles/theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" /> |
| <link href="../../../_static/styles/pydata-sphinx-theme.css?digest=8878045cc6db502f8baf" rel="stylesheet" /> |
| |
| <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=8f2a1f02" /> |
| <link rel="stylesheet" type="text/css" href="../../../_static/mystnb.11b39860a7a0cbfd473a3ad8a317855267ff0bd372690045ca344a6b62be495e.css" /> |
| <link rel="stylesheet" type="text/css" href="../../../_static/graphviz.css?v=4ae1632d" /> |
| <link rel="stylesheet" type="text/css" href="../../../_static/theme_overrides.css?v=4af573bc" /> |
| |
| <!-- So that users can add custom icons --> |
| <script src="../../../_static/scripts/fontawesome.js?digest=8878045cc6db502f8baf"></script> |
| <!-- Pre-loaded scripts that we'll load fully later --> |
| <link rel="preload" as="script" href="../../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf" /> |
| <link rel="preload" as="script" href="../../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf" /> |
| |
| <script src="../../../_static/documentation_options.js?v=5929fcd5"></script> |
| <script src="../../../_static/doctools.js?v=9bcbadda"></script> |
| <script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script> |
| <script>DOCUMENTATION_OPTIONS.pagename = 'autoapi/datafusion/user_defined/index';</script> |
| <script src="../../../_static/toc-toggle.js?v=36375f01"></script> |
| <link rel="icon" href="../../../_static/favicon.svg"/> |
| <link rel="index" title="Index" href="../../../genindex.html" /> |
| <link rel="search" title="Search" href="../../../search.html" /> |
| <link rel="next" title="Links" href="../../../links.html" /> |
| <link rel="prev" title="datafusion.unparser" href="../unparser/index.html" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <meta name="docsearch:language" content="en"/> |
| <meta name="docsearch:version" content="" /> |
| </head> |
| |
| |
| <body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="auto"> |
| |
| |
| |
| <div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div> |
| |
| <div id="pst-scroll-pixel-helper"></div> |
| |
| <button type="button" class="btn rounded-pill" id="pst-back-to-top"> |
| <i class="fa-solid fa-arrow-up"></i>Back to top</button> |
| |
| |
| <dialog id="pst-search-dialog"> |
| |
| <form class="bd-search d-flex align-items-center" |
| action="../../../search.html" |
| method="get"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <input type="search" |
| class="form-control" |
| name="q" |
| placeholder="Search the docs ..." |
| aria-label="Search the docs ..." |
| autocomplete="off" |
| autocorrect="off" |
| autocapitalize="off" |
| spellcheck="false"/> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span> |
| </form> |
| </dialog> |
| |
| <div class="pst-async-banner-revealer d-none"> |
| <aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside> |
| </div> |
| |
| |
| <header class="bd-header navbar navbar-expand-lg bd-navbar d-print-none"> |
| <div class="bd-header__inner bd-page-width"> |
| <button class="pst-navbar-icon sidebar-toggle primary-toggle" aria-label="Site navigation"> |
| <span class="fa-solid fa-bars"></span> |
| </button> |
| |
| |
| <div class="col-lg-3 navbar-header-items__start"> |
| |
| <div class="navbar-item"> |
| |
| |
| |
| |
| |
| <a class="navbar-brand logo" href="../../../index.html"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <img src="../../../_static/original.svg" class="logo__image only-light" alt="Apache DataFusion in Python"/> |
| <img src="../../../_static/original_dark.svg" class="logo__image only-dark pst-js-only" alt="Apache DataFusion in Python"/> |
| |
| |
| </a></div> |
| |
| </div> |
| |
| <div class="col-lg-9 navbar-header-items"> |
| |
| <div class="me-auto navbar-header-items__center"> |
| |
| <div class="navbar-item"> |
| <nav> |
| <ul class="bd-navbar-elements navbar-nav"> |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../../user-guide/index.html"> |
| User Guide |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../../contributor-guide/index.html"> |
| Contributor Guide |
| </a> |
| </li> |
| |
| |
| <li class="nav-item current active"> |
| <a class="nav-link nav-internal" href="../../index.html"> |
| API Reference |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../../links.html"> |
| Links |
| </a> |
| </li> |
| |
| </ul> |
| </nav></div> |
| |
| </div> |
| |
| |
| <div class="navbar-header-items__end"> |
| |
| <div class="navbar-item navbar-persistent--container"> |
| |
| |
| <button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <span class="search-button__default-text">Search</span> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> |
| </button> |
| </div> |
| |
| |
| <div class="navbar-item"><ul class="navbar-icon-links" |
| aria-label="Icon Links"> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/datafusion-python" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-github fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">GitHub</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://docs.rs/datafusion/latest/datafusion/" title="Rust API docs (docs.rs)" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-rust fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">Rust API docs (docs.rs)</span></a> |
| </li> |
| </ul></div> |
| |
| <div class="navbar-item"> |
| |
| <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i> |
| <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i> |
| <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i> |
| </button></div> |
| |
| </div> |
| |
| </div> |
| |
| |
| <div class="navbar-persistent--mobile"> |
| |
| <button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="fa-solid fa-magnifying-glass"></i> |
| <span class="search-button__default-text">Search</span> |
| <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span> |
| </button> |
| </div> |
| |
| |
| |
| <button class="pst-navbar-icon sidebar-toggle secondary-toggle" aria-label="On this page"> |
| <span class="fa-solid fa-outdent"></span> |
| </button> |
| |
| </div> |
| |
| </header> |
| |
| |
| <div class="bd-container"> |
| <div class="bd-container__inner bd-page-width"> |
| |
| |
| |
| <dialog id="pst-primary-sidebar-modal"></dialog> |
| <div id="pst-primary-sidebar" class="bd-sidebar-primary bd-sidebar"> |
| |
| |
| |
| <div class="sidebar-header-items sidebar-primary__section"> |
| |
| |
| <div class="sidebar-header-items__center"> |
| |
| |
| |
| <div class="navbar-item"> |
| <nav> |
| <ul class="bd-navbar-elements navbar-nav"> |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../../user-guide/index.html"> |
| User Guide |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../../contributor-guide/index.html"> |
| Contributor Guide |
| </a> |
| </li> |
| |
| |
| <li class="nav-item current active"> |
| <a class="nav-link nav-internal" href="../../index.html"> |
| API Reference |
| </a> |
| </li> |
| |
| |
| <li class="nav-item "> |
| <a class="nav-link nav-internal" href="../../../links.html"> |
| Links |
| </a> |
| </li> |
| |
| </ul> |
| </nav></div> |
| |
| |
| </div> |
| |
| |
| |
| <div class="sidebar-header-items__end"> |
| |
| <div class="navbar-item"><ul class="navbar-icon-links" |
| aria-label="Icon Links"> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://github.com/apache/datafusion-python" title="GitHub" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-github fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">GitHub</span></a> |
| </li> |
| <li class="nav-item"> |
| |
| |
| |
| |
| |
| |
| |
| |
| <a href="https://docs.rs/datafusion/latest/datafusion/" title="Rust API docs (docs.rs)" class="nav-link pst-navbar-icon" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><i class="fa-brands fa-rust fa-lg" aria-hidden="true"></i> |
| <span class="sr-only">Rust API docs (docs.rs)</span></a> |
| </li> |
| </ul></div> |
| |
| <div class="navbar-item"> |
| |
| <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button pst-js-only" aria-label="Color mode" data-bs-title="Color mode" data-bs-placement="bottom" data-bs-toggle="tooltip"> |
| <i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light" title="Light"></i> |
| <i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark" title="Dark"></i> |
| <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto" title="System Settings"></i> |
| </button></div> |
| |
| </div> |
| |
| </div> |
| |
| <div class="sidebar-primary-items__start sidebar-primary__section"> |
| <div class="sidebar-primary-item"> |
| <nav class="bd-docs-nav bd-links" aria-label="Section Navigation"> |
| <p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p> |
| <div class="bd-toc-item navbar-nav"> |
| <ul class="current nav bd-sidenav"> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../../../user-guide/index.html">User Guide</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/introduction.html">Introduction</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/basics.html">Concepts</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/data-sources.html">Data Sources</a></li> |
| |
| <li class="toctree-l2 has-children"><a class="reference internal" href="../../../user-guide/dataframe/index.html">DataFrames</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/dataframe/rendering.html">DataFrame Rendering</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/dataframe/execution-metrics.html">Execution Metrics</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="../../../user-guide/common-operations/index.html">Common Operations</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/views.html">Registering Views</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/basic-info.html">Basic Operations</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/select-and-filter.html">Column Selections</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/expressions.html">Expressions</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/joins.html">Joins</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/functions.html">Functions</a></li> |
| |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/spark-functions.html">Spark-Compatible Functions</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/aggregations.html">Aggregation</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/windows.html">Window Functions</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/common-operations/udf-and-udfa.html">User-Defined Functions</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2 has-children"><a class="reference internal" href="../../../user-guide/io/index.html">IO</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/io/arrow.html">Arrow</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/io/avro.html">Avro</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/io/csv.html">CSV</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/io/json.html">JSON</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/io/parquet.html">Parquet</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../../../user-guide/io/table_provider.html">Custom Table Provider</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/configuration.html">Configuration</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/distributing-work.html">Distributing work</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/sql.html">SQL</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/upgrade-guides.html">Upgrade Guides</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../user-guide/ai-coding-assistants.html">Using AI Coding Assistants</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../../../contributor-guide/index.html">Contributor Guide</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference internal" href="../../../contributor-guide/introduction.html">Introduction</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../../../contributor-guide/ffi.html">Python Extensions</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 current active has-children"><a class="reference internal" href="../../index.html">API Reference</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul class="current"> |
| <li class="toctree-l2 current active has-children"><a class="reference internal" href="../index.html">datafusion</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul class="current"> |
| <li class="toctree-l3"><a class="reference internal" href="../catalog/index.html">datafusion.catalog</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../context/index.html">datafusion.context</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../dataframe/index.html">datafusion.dataframe</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../dataframe_formatter/index.html">datafusion.dataframe_formatter</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../expr/index.html">datafusion.expr</a></li> |
| <li class="toctree-l3 has-children"><a class="reference internal" href="../functions/index.html">datafusion.functions</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l4"><a class="reference internal" href="../functions/spark/index.html">datafusion.functions.spark</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l3 has-children"><a class="reference internal" href="../input/index.html">datafusion.input</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l4"><a class="reference internal" href="../input/base/index.html">datafusion.input.base</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="../input/location/index.html">datafusion.input.location</a></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l3"><a class="reference internal" href="../io/index.html">datafusion.io</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../ipc/index.html">datafusion.ipc</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../object_store/index.html">datafusion.object_store</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../options/index.html">datafusion.options</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../plan/index.html">datafusion.plan</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../record_batch/index.html">datafusion.record_batch</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../substrait/index.html">datafusion.substrait</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="../unparser/index.html">datafusion.unparser</a></li> |
| <li class="toctree-l3 current active"><a class="current reference internal" href="#">datafusion.user_defined</a></li> |
| </ul> |
| </details></li> |
| </ul> |
| </details></li> |
| <li class="toctree-l1 has-children"><a class="reference internal" href="../../../links.html">Links</a><details open="open"><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul> |
| <li class="toctree-l2"><a class="reference external" href="https://github.com/apache/datafusion-python">GitHub and Issue Tracker</a></li> |
| <li class="toctree-l2"><a class="reference external" href="https://docs.rs/datafusion/latest/datafusion/">Rust API Docs</a></li> |
| <li class="toctree-l2"><a class="reference external" href="https://github.com/apache/datafusion/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></li> |
| <li class="toctree-l2"><a class="reference external" href="https://github.com/apache/datafusion-python/tree/main/examples">Examples</a></li> |
| </ul> |
| </details></li> |
| </ul> |
| </div> |
| </nav></div> |
| </div> |
| |
| |
| <div class="sidebar-primary-items__end sidebar-primary__section"> |
| <div class="sidebar-primary-item"> |
| <div id="ethical-ad-placement" |
| class="flat" |
| data-ea-publisher="readthedocs" |
| data-ea-type="readthedocs-sidebar" |
| data-ea-manual="true"> |
| </div></div> |
| </div> |
| |
| |
| </div> |
| |
| <main id="main-content" class="bd-main" role="main"> |
| |
| |
| <div class="bd-content"> |
| <div class="bd-article-container"> |
| |
| <div class="bd-header-article d-print-none"> |
| <div class="header-article-items header-article__inner"> |
| |
| <div class="header-article-items__start"> |
| |
| <div class="header-article-item"> |
| |
| <nav aria-label="Breadcrumb" class="d-print-none"> |
| <ul class="bd-breadcrumbs"> |
| |
| <li class="breadcrumb-item breadcrumb-home"> |
| <a href="../../../index.html" class="nav-link" aria-label="Home"> |
| <i class="fa-solid fa-home"></i> |
| </a> |
| </li> |
| |
| <li class="breadcrumb-item"><a href="../../index.html" class="nav-link">API Reference</a></li> |
| |
| |
| <li class="breadcrumb-item"><a href="../index.html" class="nav-link">datafusion</a></li> |
| |
| <li class="breadcrumb-item active" aria-current="page"><span class="ellipsis">datafusion.user_defined</span></li> |
| </ul> |
| </nav> |
| </div> |
| |
| </div> |
| |
| |
| </div> |
| </div> |
| |
| |
| |
| |
| <div id="searchbox"></div> |
| <article class="bd-article"> |
| |
| <section id="module-datafusion.user_defined"> |
| <span id="datafusion-user-defined"></span><h1>datafusion.user_defined<a class="headerlink" href="#module-datafusion.user_defined" title="Link to this heading">#</a></h1> |
| <p>Provides the user-defined functions for evaluation of dataframes.</p> |
| <section id="attributes"> |
| <h2>Attributes<a class="headerlink" href="#attributes" title="Link to this heading">#</a></h2> |
| <div class="pst-scrollable-table-container"><table class="autosummary longtable table autosummary"> |
| <tbody> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined._R" title="datafusion.user_defined._R"><code class="xref py py-obj docutils literal notranslate"><span class="pre">_R</span></code></a></p></td> |
| <td><p></p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.udaf" title="datafusion.user_defined.udaf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">udaf</span></code></a></p></td> |
| <td><p></p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.udf" title="datafusion.user_defined.udf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">udf</span></code></a></p></td> |
| <td><p></p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.udtf" title="datafusion.user_defined.udtf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">udtf</span></code></a></p></td> |
| <td><p></p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.udwf" title="datafusion.user_defined.udwf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">udwf</span></code></a></p></td> |
| <td><p></p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </section> |
| <section id="classes"> |
| <h2>Classes<a class="headerlink" href="#classes" title="Link to this heading">#</a></h2> |
| <div class="pst-scrollable-table-container"><table class="autosummary longtable table autosummary"> |
| <tbody> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.Accumulator" title="datafusion.user_defined.Accumulator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Accumulator</span></code></a></p></td> |
| <td><p>Defines how an <a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><code class="xref py py-class docutils literal notranslate"><span class="pre">AggregateUDF</span></code></a> accumulates values.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AggregateUDF</span></code></a></p></td> |
| <td><p>Class for performing scalar user-defined functions (UDF).</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.AggregateUDFExportable" title="datafusion.user_defined.AggregateUDFExportable"><code class="xref py py-obj docutils literal notranslate"><span class="pre">AggregateUDFExportable</span></code></a></p></td> |
| <td><p>Type hint for object that has __datafusion_aggregate_udf__ PyCapsule.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.LogicalExtensionCodecExportable" title="datafusion.user_defined.LogicalExtensionCodecExportable"><code class="xref py py-obj docutils literal notranslate"><span class="pre">LogicalExtensionCodecExportable</span></code></a></p></td> |
| <td><p>Type hint for objects exposing <code class="docutils literal notranslate"><span class="pre">__datafusion_logical_extension_codec__</span></code>.</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.PhysicalExtensionCodecExportable" title="datafusion.user_defined.PhysicalExtensionCodecExportable"><code class="xref py py-obj docutils literal notranslate"><span class="pre">PhysicalExtensionCodecExportable</span></code></a></p></td> |
| <td><p>Type hint for objects exposing <code class="docutils literal notranslate"><span class="pre">__datafusion_physical_extension_codec__</span></code>.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ScalarUDF</span></code></a></p></td> |
| <td><p>Class for performing scalar user-defined functions (UDF).</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.ScalarUDFExportable" title="datafusion.user_defined.ScalarUDFExportable"><code class="xref py py-obj docutils literal notranslate"><span class="pre">ScalarUDFExportable</span></code></a></p></td> |
| <td><p>Type hint for object that has __datafusion_scalar_udf__ PyCapsule.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.TableFunction" title="datafusion.user_defined.TableFunction"><code class="xref py py-obj docutils literal notranslate"><span class="pre">TableFunction</span></code></a></p></td> |
| <td><p>Class for performing user-defined table functions (UDTF).</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Volatility</span></code></a></p></td> |
| <td><p>Defines how stable or volatile a function is.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.WindowEvaluator" title="datafusion.user_defined.WindowEvaluator"><code class="xref py py-obj docutils literal notranslate"><span class="pre">WindowEvaluator</span></code></a></p></td> |
| <td><p>Evaluator class for user-defined window functions (UDWF).</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.WindowUDF" title="datafusion.user_defined.WindowUDF"><code class="xref py py-obj docutils literal notranslate"><span class="pre">WindowUDF</span></code></a></p></td> |
| <td><p>Class for performing window user-defined functions (UDF).</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.WindowUDFExportable" title="datafusion.user_defined.WindowUDFExportable"><code class="xref py py-obj docutils literal notranslate"><span class="pre">WindowUDFExportable</span></code></a></p></td> |
| <td><p>Type hint for object that has __datafusion_window_udf__ PyCapsule.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </section> |
| <section id="functions"> |
| <h2>Functions<a class="headerlink" href="#functions" title="Link to this heading">#</a></h2> |
| <div class="pst-scrollable-table-container"><table class="autosummary longtable table autosummary"> |
| <tbody> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined._is_pycapsule" title="datafusion.user_defined._is_pycapsule"><code class="xref py py-obj docutils literal notranslate"><span class="pre">_is_pycapsule</span></code></a>(→ TypeGuard[_typeshed.CapsuleType])</p></td> |
| <td><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> when <code class="docutils literal notranslate"><span class="pre">value</span></code> is a CPython <code class="docutils literal notranslate"><span class="pre">PyCapsule</span></code>.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined._wrap_session_kwarg_for_udtf" title="datafusion.user_defined._wrap_session_kwarg_for_udtf"><code class="xref py py-obj docutils literal notranslate"><span class="pre">_wrap_session_kwarg_for_udtf</span></code></a>(...)</p></td> |
| <td><p>Adapt the raw internal session pyo3 object back to a Python wrapper.</p></td> |
| </tr> |
| <tr class="row-odd"><td><p><a class="reference internal" href="#datafusion.user_defined.data_type_or_field_to_field" title="datafusion.user_defined.data_type_or_field_to_field"><code class="xref py py-obj docutils literal notranslate"><span class="pre">data_type_or_field_to_field</span></code></a>(→ pyarrow.Field)</p></td> |
| <td><p>Helper function to return a Field from either a Field or DataType.</p></td> |
| </tr> |
| <tr class="row-even"><td><p><a class="reference internal" href="#datafusion.user_defined.data_types_or_fields_to_field_list" title="datafusion.user_defined.data_types_or_fields_to_field_list"><code class="xref py py-obj docutils literal notranslate"><span class="pre">data_types_or_fields_to_field_list</span></code></a>(→ list[pyarrow.Field])</p></td> |
| <td><p>Helper function to return a list of Fields.</p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </section> |
| <section id="module-contents"> |
| <h2>Module Contents<a class="headerlink" href="#module-contents" title="Link to this heading">#</a></h2> |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Accumulator"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">Accumulator</span></span><a class="headerlink" href="#datafusion.user_defined.Accumulator" title="Link to this definition">#</a></dt> |
| <dd><p>Defines how an <a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><code class="xref py py-class docutils literal notranslate"><span class="pre">AggregateUDF</span></code></a> accumulates values.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Accumulator.evaluate"> |
| <em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">evaluate</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">pyarrow.Scalar</span></span></span><a class="headerlink" href="#datafusion.user_defined.Accumulator.evaluate" title="Link to this definition">#</a></dt> |
| <dd><p>Return the resultant value.</p> |
| <p>While this function template expects a PyArrow Scalar value return type, |
| you can return any value that can be converted into a Scalar. This |
| includes basic Python data types such as integers and strings. In |
| addition to primitive types, we currently support PyArrow, nanoarrow, |
| and arro3 objects in addition to primitive data types. Other objects |
| that support the Arrow FFI standard will be given a “best attempt” at |
| conversion to scalar objects.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Accumulator.merge"> |
| <em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">merge</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">states</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Array</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#datafusion.user_defined.Accumulator.merge" title="Link to this definition">#</a></dt> |
| <dd><p>Merge a set of states.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Accumulator.state"> |
| <em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">state</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Scalar</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.Accumulator.state" title="Link to this definition">#</a></dt> |
| <dd><p>Return the current state.</p> |
| <p>While this function template expects PyArrow Scalar values return type, |
| you can return any value that can be converted into a Scalar. This |
| includes basic Python data types such as integers and strings. In |
| addition to primitive types, we currently support PyArrow, nanoarrow, |
| and arro3 objects in addition to primitive data types. Other objects |
| that support the Arrow FFI standard will be given a “best attempt” at |
| conversion to scalar objects.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Accumulator.update"> |
| <em class="property"><span class="pre">abstract</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">update</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">values</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.Array</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#datafusion.user_defined.Accumulator.update" title="Link to this definition">#</a></dt> |
| <dd><p>Evaluate an array of values and update state.</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">AggregateUDF</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">accumulator</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.Accumulator" title="datafusion.user_defined.Accumulator"><span class="pre">Accumulator</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF" title="Link to this definition">#</a></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">AggregateUDF</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">accumulator</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.AggregateUDFExportable" title="datafusion.user_defined.AggregateUDFExportable"><span class="pre">AggregateUDFExportable</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">...</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">...</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">...</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">...</span></span></em><span class="sig-paren">)</span></dt> |
| <dd><p>Class for performing scalar user-defined functions (UDF).</p> |
| <p>Aggregate UDFs operate on a group of rows and return a single value. See |
| also <a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScalarUDF</span></code></a> for operating on a row by row basis.</p> |
| <p>Instantiate a user-defined aggregate function (UDAF).</p> |
| <p>See <a class="reference internal" href="#datafusion.user_defined.udaf" title="datafusion.user_defined.udaf"><code class="xref py py-func docutils literal notranslate"><span class="pre">udaf()</span></code></a> for a convenience function and argument |
| descriptions.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF.__call__"> |
| <span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF.__call__" title="Link to this definition">#</a></dt> |
| <dd><p>Execute the UDAF.</p> |
| <p>This function is not typically called by an end user. These calls will |
| occur during the evaluation of the dataframe.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF.__repr__"> |
| <span class="sig-name descname"><span class="pre">__repr__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF.__repr__" title="Link to this definition">#</a></dt> |
| <dd><p>Print a string representation of the Aggregate UDF.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF._from_internal"> |
| <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_from_internal</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">internal</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">datafusion._internal.AggregateUDF</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><span class="pre">AggregateUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF._from_internal" title="Link to this definition">#</a></dt> |
| <dd><p>Wrap an already-constructed internal <code class="docutils literal notranslate"><span class="pre">AggregateUDF</span></code> handle.</p> |
| <p>Used by <code class="xref py py-meth docutils literal notranslate"><span class="pre">SessionContext.udaf()</span></code> to surface a function looked |
| up from the session’s function registry without re-running |
| <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code>.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF.from_pycapsule"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_pycapsule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.AggregateUDFExportable" title="datafusion.user_defined.AggregateUDFExportable"><span class="pre">AggregateUDFExportable</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">_typeshed.CapsuleType</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><span class="pre">AggregateUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF.from_pycapsule" title="Link to this definition">#</a></dt> |
| <dd><p>Create an Aggregate UDF from AggregateUDF PyCapsule object.</p> |
| <p>This function will instantiate a Aggregate UDF that uses a DataFusion |
| AggregateUDF that is exported via the FFI bindings.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF.udaf"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udaf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><span class="pre">AggregateUDF</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF.udaf" title="Link to this definition">#</a></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udaf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accum</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.Accumulator" title="datafusion.user_defined.Accumulator"><span class="pre">Accumulator</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">state_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><span class="pre">AggregateUDF</span></a></span></span></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udaf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accum</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.AggregateUDFExportable" title="datafusion.user_defined.AggregateUDFExportable"><span class="pre">AggregateUDFExportable</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><span class="pre">AggregateUDF</span></a></span></span></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udaf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">accum</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">_typeshed.CapsuleType</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><span class="pre">AggregateUDF</span></a></span></span></dt> |
| <dd><p>Create a new User-Defined Aggregate Function (UDAF).</p> |
| <p>This class allows you to define an aggregate function that can be used in |
| data aggregation or window function calls.</p> |
| <dl class="simple"> |
| <dt>Usage:</dt><dd><ul class="simple"> |
| <li><p>As a function: <code class="docutils literal notranslate"><span class="pre">udaf(accum,</span> <span class="pre">input_types,</span> <span class="pre">return_type,</span> <span class="pre">state_type,</span> <span class="pre">volatility,</span> <span class="pre">name)</span></code>.</p></li> |
| <li><p>As a decorator: <code class="docutils literal notranslate"><span class="pre">@udaf(input_types,</span> <span class="pre">return_type,</span> <span class="pre">state_type,</span> <span class="pre">volatility,</span> <span class="pre">name)</span></code>. |
| When using <code class="docutils literal notranslate"><span class="pre">udaf</span></code> as a decorator, do not pass <code class="docutils literal notranslate"><span class="pre">accum</span></code> explicitly.</p></li> |
| </ul> |
| </dd> |
| </dl> |
| <p>If your <a class="reference internal" href="#datafusion.user_defined.Accumulator" title="datafusion.user_defined.Accumulator"><code class="xref py py-class docutils literal notranslate"><span class="pre">Accumulator</span></code></a> can be instantiated with no arguments, you |
| can simply pass its type as <code class="docutils literal notranslate"><span class="pre">accum</span></code>. If you need to pass additional |
| arguments to its constructor, you can define a lambda or a factory method. |
| During runtime the <a class="reference internal" href="#datafusion.user_defined.Accumulator" title="datafusion.user_defined.Accumulator"><code class="xref py py-class docutils literal notranslate"><span class="pre">Accumulator</span></code></a> will be constructed for every |
| instance in which this UDAF is used.</p> |
| <p class="rubric">Examples</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">pyarrow.compute</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pc</span> |
| <span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">datafusion.user_defined</span><span class="w"> </span><span class="kn">import</span> <span class="n">AggregateUDF</span><span class="p">,</span> <span class="n">Accumulator</span><span class="p">,</span> <span class="n">udaf</span> |
| <span class="gp">>>> </span><span class="k">class</span><span class="w"> </span><span class="nc">Summarize</span><span class="p">(</span><span class="n">Accumulator</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bias</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">0.0</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">_sum</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">scalar</span><span class="p">(</span><span class="n">bias</span><span class="p">)</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="nf">state</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_sum</span><span class="p">]</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">_sum</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">scalar</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">_sum</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> <span class="o">+</span> <span class="n">pc</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">values</span><span class="p">)</span><span class="o">.</span><span class="n">as_py</span><span class="p">())</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="nf">merge</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">states</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">_sum</span> <span class="o">=</span> <span class="n">pa</span><span class="o">.</span><span class="n">scalar</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">_sum</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> <span class="o">+</span> <span class="n">pc</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">states</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">as_py</span><span class="p">())</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="nf">evaluate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sum</span> |
| </pre></div> |
| </div> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udaf</span></code> as a function:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">udaf1</span> <span class="o">=</span> <span class="n">AggregateUDF</span><span class="o">.</span><span class="n">udaf</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="n">Summarize</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> |
| <span class="gp">... </span> <span class="p">[</span><span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">()],</span> <span class="s2">"immutable"</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Wrapping <code class="docutils literal notranslate"><span class="pre">udaf</span></code> with a function:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">sum_bias_10</span><span class="p">()</span> <span class="o">-></span> <span class="n">Summarize</span><span class="p">:</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">Summarize</span><span class="p">(</span><span class="mf">10.0</span><span class="p">)</span> |
| <span class="gp">>>> </span><span class="n">udaf2</span> <span class="o">=</span> <span class="n">udaf</span><span class="p">(</span><span class="n">sum_bias_10</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> <span class="p">[</span><span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">()],</span> |
| <span class="gp">... </span> <span class="s2">"immutable"</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udaf</span></code> with lambda:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">udaf3</span> <span class="o">=</span> <span class="n">udaf</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="n">Summarize</span><span class="p">(</span><span class="mf">20.0</span><span class="p">),</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> |
| <span class="gp">... </span> <span class="p">[</span><span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">()],</span> <span class="s2">"immutable"</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udaf</span></code> as a decorator:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nd">@AggregateUDF</span><span class="o">.</span><span class="n">udaf</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">(),</span> |
| <span class="gp">... </span> <span class="p">[</span><span class="n">pa</span><span class="o">.</span><span class="n">float64</span><span class="p">()],</span> <span class="s2">"immutable"</span><span class="p">)</span> |
| <span class="gp">... </span><span class="k">def</span><span class="w"> </span><span class="nf">udaf4</span><span class="p">():</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">Summarize</span><span class="p">(</span><span class="mf">10.0</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Apply to a dataframe:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">ctx</span> <span class="o">=</span> <span class="n">dfn</span><span class="o">.</span><span class="n">SessionContext</span><span class="p">()</span> |
| <span class="gp">>>> </span><span class="n">df</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="n">from_pydict</span><span class="p">({</span><span class="s2">"a"</span><span class="p">:</span> <span class="p">[</span><span class="mf">1.0</span><span class="p">,</span> <span class="mf">2.0</span><span class="p">,</span> <span class="mf">3.0</span><span class="p">]})</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">aggregate</span><span class="p">([],</span> <span class="p">[</span><span class="n">udaf1</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"total"</span><span class="p">)])</span><span class="o">.</span><span class="n">collect_column</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="s2">"total"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> |
| <span class="go">6.0</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">aggregate</span><span class="p">([],</span> <span class="p">[</span><span class="n">udaf2</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"total"</span><span class="p">)])</span><span class="o">.</span><span class="n">collect_column</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="s2">"total"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> |
| <span class="go">16.0</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">aggregate</span><span class="p">([],</span> <span class="p">[</span><span class="n">udaf3</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"total"</span><span class="p">)])</span><span class="o">.</span><span class="n">collect_column</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="s2">"total"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> |
| <span class="go">26.0</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">aggregate</span><span class="p">([],</span> <span class="p">[</span><span class="n">udaf4</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"total"</span><span class="p">)])</span><span class="o">.</span><span class="n">collect_column</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="s2">"total"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> |
| <span class="go">16.0</span> |
| </pre></div> |
| </div> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>accum</strong> – The accumulator python function. Only needed when calling as a |
| function. Skip this argument when using <code class="docutils literal notranslate"><span class="pre">udaf</span></code> as a decorator. |
| If you have a Rust backed AggregateUDF within a PyCapsule, you can |
| pass this parameter and ignore the rest. They will be determined |
| directly from the underlying function. See the online documentation |
| for more information.</p></li> |
| <li><p><strong>input_types</strong> – The data types of the arguments to <code class="docutils literal notranslate"><span class="pre">accum</span></code>.</p></li> |
| <li><p><strong>return_type</strong> – The data type of the return value.</p></li> |
| <li><p><strong>state_type</strong> – The data types of the intermediate accumulation.</p></li> |
| <li><p><strong>volatility</strong> – See <a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><code class="xref py py-class docutils literal notranslate"><span class="pre">Volatility</span></code></a> for allowed values.</p></li> |
| <li><p><strong>name</strong> – A descriptive name for the function.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>A user-defined aggregate function, which can be used in either data |
| aggregation or window function calls.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF._udaf"> |
| <span class="sig-name descname"><span class="pre">_udaf</span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDF._udaf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py property"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDF.name"> |
| <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#datafusion.user_defined.AggregateUDF.name" title="Link to this definition">#</a></dt> |
| <dd><p>Return the registered name of this UDAF.</p> |
| <p>For UDAFs imported via the FFI capsule protocol, this is the |
| name the capsule itself reports — not the <code class="docutils literal notranslate"><span class="pre">name</span></code> argument |
| passed to the constructor (which is ignored on the FFI path).</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDFExportable"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">AggregateUDFExportable</span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDFExportable" title="Link to this definition">#</a></dt> |
| <dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">Protocol</span></code></p> |
| <p>Type hint for object that has __datafusion_aggregate_udf__ PyCapsule.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.AggregateUDFExportable.__datafusion_aggregate_udf__"> |
| <span class="sig-name descname"><span class="pre">__datafusion_aggregate_udf__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">object</span></span></span><a class="headerlink" href="#datafusion.user_defined.AggregateUDFExportable.__datafusion_aggregate_udf__" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.LogicalExtensionCodecExportable"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">LogicalExtensionCodecExportable</span></span><a class="headerlink" href="#datafusion.user_defined.LogicalExtensionCodecExportable" title="Link to this definition">#</a></dt> |
| <dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">Protocol</span></code></p> |
| <p>Type hint for objects exposing <code class="docutils literal notranslate"><span class="pre">__datafusion_logical_extension_codec__</span></code>.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.LogicalExtensionCodecExportable.__datafusion_logical_extension_codec__"> |
| <span class="sig-name descname"><span class="pre">__datafusion_logical_extension_codec__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">object</span></span></span><a class="headerlink" href="#datafusion.user_defined.LogicalExtensionCodecExportable.__datafusion_logical_extension_codec__" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.PhysicalExtensionCodecExportable"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">PhysicalExtensionCodecExportable</span></span><a class="headerlink" href="#datafusion.user_defined.PhysicalExtensionCodecExportable" title="Link to this definition">#</a></dt> |
| <dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">Protocol</span></code></p> |
| <p>Type hint for objects exposing <code class="docutils literal notranslate"><span class="pre">__datafusion_physical_extension_codec__</span></code>.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.PhysicalExtensionCodecExportable.__datafusion_physical_extension_codec__"> |
| <span class="sig-name descname"><span class="pre">__datafusion_physical_extension_codec__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">object</span></span></span><a class="headerlink" href="#datafusion.user_defined.PhysicalExtensionCodecExportable.__datafusion_physical_extension_codec__" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">ScalarUDF</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">_R</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_fields</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Field</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_field</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.Field</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF" title="Link to this definition">#</a></dt> |
| <dd><p>Class for performing scalar user-defined functions (UDF).</p> |
| <p>Scalar UDFs operate on a row by row basis. See also <a class="reference internal" href="#datafusion.user_defined.AggregateUDF" title="datafusion.user_defined.AggregateUDF"><code class="xref py py-class docutils literal notranslate"><span class="pre">AggregateUDF</span></code></a> for |
| operating on a group of rows.</p> |
| <p>Instantiate a scalar user-defined function (UDF).</p> |
| <p>See helper method <a class="reference internal" href="#datafusion.user_defined.udf" title="datafusion.user_defined.udf"><code class="xref py py-func docutils literal notranslate"><span class="pre">udf()</span></code></a> for argument details.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF.__call__"> |
| <span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF.__call__" title="Link to this definition">#</a></dt> |
| <dd><p>Execute the UDF.</p> |
| <p>This function is not typically called by an end user. These calls will |
| occur during the evaluation of the dataframe.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF.__repr__"> |
| <span class="sig-name descname"><span class="pre">__repr__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF.__repr__" title="Link to this definition">#</a></dt> |
| <dd><p>Print a string representation of the Scalar UDF.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF._from_internal"> |
| <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_from_internal</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">internal</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">datafusion._internal.ScalarUDF</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><span class="pre">ScalarUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF._from_internal" title="Link to this definition">#</a></dt> |
| <dd><p>Wrap an already-constructed internal <code class="docutils literal notranslate"><span class="pre">ScalarUDF</span></code> handle.</p> |
| <p>Used by <code class="xref py py-meth docutils literal notranslate"><span class="pre">SessionContext.udf()</span></code> to surface a function looked |
| up from the session’s function registry without re-running |
| <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code>.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF.from_pycapsule"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_pycapsule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.ScalarUDFExportable" title="datafusion.user_defined.ScalarUDFExportable"><span class="pre">ScalarUDFExportable</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><span class="pre">ScalarUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF.from_pycapsule" title="Link to this definition">#</a></dt> |
| <dd><p>Create a Scalar UDF from ScalarUDF PyCapsule object.</p> |
| <p>This function will instantiate a Scalar UDF that uses a DataFusion |
| ScalarUDF that is exported via the FFI bindings.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF.udf"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_fields</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_field</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><span class="pre">ScalarUDF</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF.udf" title="Link to this definition">#</a></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">_R</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_fields</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_field</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><span class="pre">ScalarUDF</span></a></span></span></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.ScalarUDFExportable" title="datafusion.user_defined.ScalarUDFExportable"><span class="pre">ScalarUDFExportable</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><span class="pre">ScalarUDF</span></a></span></span></dt> |
| <dd><p>Create a new User-Defined Function (UDF).</p> |
| <p>This class can be used both as either a function or a decorator.</p> |
| <dl class="simple"> |
| <dt>Usage:</dt><dd><ul class="simple"> |
| <li><p>As a function: <code class="docutils literal notranslate"><span class="pre">udf(func,</span> <span class="pre">input_fields,</span> <span class="pre">return_field,</span> |
| <span class="pre">volatility,</span> <span class="pre">name)</span></code>.</p></li> |
| <li><p>As a decorator: <code class="docutils literal notranslate"><span class="pre">@udf(input_fields,</span> <span class="pre">return_field,</span> <span class="pre">volatility,</span> <span class="pre">name)</span></code>. |
| When used a decorator, do <strong>not</strong> pass <code class="docutils literal notranslate"><span class="pre">func</span></code> explicitly.</p></li> |
| </ul> |
| </dd> |
| </dl> |
| <p>In lieu of passing a PyArrow Field, you can pass a DataType for simplicity. |
| When you do so, it will be assumed that the nullability of the inputs and |
| output are True and that they have no metadata.</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>func</strong> (<em>Callable</em><em>, </em><em>optional</em>) – Only needed when calling as a function. |
| Skip this argument when using <cite>udf</cite> as a decorator. If you have a Rust |
| backed ScalarUDF within a PyCapsule, you can pass this parameter |
| and ignore the rest. They will be determined directly from the |
| underlying function. See the online documentation for more information.</p></li> |
| <li><p><strong>input_fields</strong> (<em>list</em><em>[</em><em>pa.Field</em><em> | </em><em>pa.DataType</em><em>]</em>) – The data types or Fields |
| of the arguments to <code class="docutils literal notranslate"><span class="pre">func</span></code>. This list must be of the same length |
| as the number of arguments.</p></li> |
| <li><p><strong>return_field</strong> (<em>_R</em>) – The field of the return value from the function.</p></li> |
| <li><p><strong>volatility</strong> (<a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><em>Volatility</em></a><em> | </em><em>str</em>) – See <cite>Volatility</cite> for allowed values.</p></li> |
| <li><p><strong>name</strong> (<em>Optional</em><em>[</em><em>str</em><em>]</em>) – A descriptive name for the function.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>A user-defined function that can be used in SQL expressions, |
| data aggregation, or window function calls.</p> |
| </dd> |
| </dl> |
| <p class="rubric">Examples</p> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udf</span></code> as a function:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">pyarrow.compute</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pc</span> |
| <span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">datafusion.user_defined</span><span class="w"> </span><span class="kn">import</span> <span class="n">ScalarUDF</span> |
| <span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">double_func</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">pc</span><span class="o">.</span><span class="n">multiply</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> |
| <span class="gp">>>> </span><span class="n">double_udf</span> <span class="o">=</span> <span class="n">ScalarUDF</span><span class="o">.</span><span class="n">udf</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="n">double_func</span><span class="p">,</span> <span class="p">[</span><span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">()],</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> |
| <span class="gp">... </span> <span class="s2">"volatile"</span><span class="p">,</span> <span class="s2">"double_it"</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udf</span></code> as a decorator:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nd">@ScalarUDF</span><span class="o">.</span><span class="n">udf</span><span class="p">([</span><span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">()],</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="s2">"volatile"</span><span class="p">)</span> |
| <span class="gp">... </span><span class="k">def</span><span class="w"> </span><span class="nf">decorator_double_udf</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">pc</span><span class="o">.</span><span class="n">multiply</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Apply to a dataframe:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">ctx</span> <span class="o">=</span> <span class="n">dfn</span><span class="o">.</span><span class="n">SessionContext</span><span class="p">()</span> |
| <span class="gp">>>> </span><span class="n">df</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="n">from_pydict</span><span class="p">({</span><span class="s2">"x"</span><span class="p">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]})</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">double_udf</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"x"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"result"</span><span class="p">))</span><span class="o">.</span><span class="n">to_pydict</span><span class="p">()</span> |
| <span class="go">{'result': [2, 4, 6]}</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">decorator_double_udf</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"x"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"result"</span><span class="p">))</span><span class="o">.</span><span class="n">to_pydict</span><span class="p">()</span> |
| <span class="go">{'result': [3, 6, 9]}</span> |
| </pre></div> |
| </div> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF._udf"> |
| <span class="sig-name descname"><span class="pre">_udf</span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDF._udf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py property"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDF.name"> |
| <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#datafusion.user_defined.ScalarUDF.name" title="Link to this definition">#</a></dt> |
| <dd><p>Return the registered name of this UDF.</p> |
| <p>For UDFs imported via the FFI capsule protocol, this is the |
| name the capsule itself reports — not the <code class="docutils literal notranslate"><span class="pre">name</span></code> argument |
| passed to the constructor (which is ignored on the FFI path).</p> |
| <p class="rubric">Examples</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">pyarrow</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pa</span> |
| <span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">datafusion</span><span class="w"> </span><span class="kn">import</span> <span class="n">udf</span> |
| <span class="gp">>>> </span><span class="n">double</span> <span class="o">=</span> <span class="n">udf</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="k">lambda</span> <span class="n">arr</span><span class="p">:</span> <span class="n">pa</span><span class="o">.</span><span class="n">array</span><span class="p">([(</span><span class="n">v</span><span class="o">.</span><span class="n">as_py</span><span class="p">()</span> <span class="ow">or</span> <span class="mi">0</span><span class="p">)</span> <span class="o">*</span> <span class="mi">2</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">arr</span><span class="p">]),</span> |
| <span class="gp">... </span> <span class="p">[</span><span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">()],</span> |
| <span class="gp">... </span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> |
| <span class="gp">... </span> <span class="n">volatility</span><span class="o">=</span><span class="s2">"immutable"</span><span class="p">,</span> |
| <span class="gp">... </span> <span class="n">name</span><span class="o">=</span><span class="s2">"double"</span><span class="p">,</span> |
| <span class="gp">... </span><span class="p">)</span> |
| <span class="gp">>>> </span><span class="n">double</span><span class="o">.</span><span class="n">name</span> |
| <span class="go">'double'</span> |
| </pre></div> |
| </div> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDFExportable"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">ScalarUDFExportable</span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDFExportable" title="Link to this definition">#</a></dt> |
| <dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">Protocol</span></code></p> |
| <p>Type hint for object that has __datafusion_scalar_udf__ PyCapsule.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.ScalarUDFExportable.__datafusion_scalar_udf__"> |
| <span class="sig-name descname"><span class="pre">__datafusion_scalar_udf__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">object</span></span></span><a class="headerlink" href="#datafusion.user_defined.ScalarUDFExportable.__datafusion_scalar_udf__" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">TableFunction</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ctx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">datafusion.SessionContext</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">with_session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datafusion.user_defined.TableFunction" title="Link to this definition">#</a></dt> |
| <dd><p>Class for performing user-defined table functions (UDTF).</p> |
| <p>Table functions generate new table providers based on the |
| input expressions.</p> |
| <p>Instantiate a user-defined table function (UDTF).</p> |
| <p>Set <code class="docutils literal notranslate"><span class="pre">with_session=True</span></code> to have the calling |
| <code class="xref py py-class docutils literal notranslate"><span class="pre">SessionContext</span></code> passed as a <code class="docutils literal notranslate"><span class="pre">session</span></code> keyword argument |
| on each invocation. Use it inside the callback to look up |
| registered tables, UDFs, or session configuration. When |
| <code class="docutils literal notranslate"><span class="pre">with_session</span></code> is <code class="docutils literal notranslate"><span class="pre">False</span></code> (the default), <code class="docutils literal notranslate"><span class="pre">func</span></code> is invoked |
| with the positional expression arguments only.</p> |
| <p><code class="docutils literal notranslate"><span class="pre">with_session=True</span></code> is only supported for pure-Python callables. |
| Passing it together with an FFI-exported table function (one |
| exposing <code class="docutils literal notranslate"><span class="pre">__datafusion_table_function__</span></code>) raises |
| <code class="xref py py-class docutils literal notranslate"><span class="pre">TypeError</span></code>.</p> |
| <p>Registry mutations performed through the injected session (such |
| as registering tables or UDFs) propagate to the caller’s |
| <code class="xref py py-class docutils literal notranslate"><span class="pre">SessionContext</span></code> because the registries are shared. |
| Configuration changes do <strong>not</strong> propagate; the wrapper holds |
| its own clone of the session config.</p> |
| <p>See <a class="reference internal" href="#datafusion.user_defined.udtf" title="datafusion.user_defined.udtf"><code class="xref py py-func docutils literal notranslate"><span class="pre">udtf()</span></code></a> for a convenience function and argument |
| descriptions.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction.__call__"> |
| <span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Any</span></span></span><a class="headerlink" href="#datafusion.user_defined.TableFunction.__call__" title="Link to this definition">#</a></dt> |
| <dd><p>Execute the UDTF and return a table provider.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction.__repr__"> |
| <span class="sig-name descname"><span class="pre">__repr__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#datafusion.user_defined.TableFunction.__repr__" title="Link to this definition">#</a></dt> |
| <dd><p>User printable representation.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction._create_table_udf"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_create_table_udf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">with_session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.TableFunction" title="datafusion.user_defined.TableFunction"><span class="pre">TableFunction</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.TableFunction._create_table_udf" title="Link to this definition">#</a></dt> |
| <dd><p>Create a TableFunction instance from function arguments.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction._create_table_udf_decorator"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_create_table_udf_decorator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">with_session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.TableFunction" title="datafusion.user_defined.TableFunction"><span class="pre">TableFunction</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.TableFunction._create_table_udf_decorator" title="Link to this definition">#</a></dt> |
| <dd><p>Create a decorator for a TableFunction.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction.udtf"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udtf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">with_session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.TableFunction.udtf" title="Link to this definition">#</a></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udtf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">with_session</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.TableFunction" title="datafusion.user_defined.TableFunction"><span class="pre">TableFunction</span></a></span></span></dt> |
| <dd><p>Create a new User-Defined Table Function (UDTF).</p> |
| <p>Pass <code class="docutils literal notranslate"><span class="pre">with_session=True</span></code> to have the calling |
| <code class="xref py py-class docutils literal notranslate"><span class="pre">SessionContext</span></code> injected as a <code class="docutils literal notranslate"><span class="pre">session</span></code> keyword |
| argument on each invocation.</p> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.TableFunction._udtf"> |
| <span class="sig-name descname"><span class="pre">_udtf</span></span><a class="headerlink" href="#datafusion.user_defined.TableFunction._udtf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Volatility"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">Volatility</span></span><a class="headerlink" href="#datafusion.user_defined.Volatility" title="Link to this definition">#</a></dt> |
| <dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">enum.Enum</span></code></p> |
| <p>Defines how stable or volatile a function is.</p> |
| <p>When setting the volatility of a function, you can either pass this |
| enumeration or a <code class="docutils literal notranslate"><span class="pre">str</span></code>. The <code class="docutils literal notranslate"><span class="pre">str</span></code> equivalent is the lower case value of the |
| name (<cite>“immutable”</cite>, <cite>“stable”</cite>, or <cite>“volatile”</cite>).</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Volatility.__str__"> |
| <span class="sig-name descname"><span class="pre">__str__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#datafusion.user_defined.Volatility.__str__" title="Link to this definition">#</a></dt> |
| <dd><p>Returns the string equivalent.</p> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Volatility.Immutable"> |
| <span class="sig-name descname"><span class="pre">Immutable</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#datafusion.user_defined.Volatility.Immutable" title="Link to this definition">#</a></dt> |
| <dd><p>An immutable function will always return the same output when given the |
| same input.</p> |
| <p>DataFusion will attempt to inline immutable functions during planning.</p> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Volatility.Stable"> |
| <span class="sig-name descname"><span class="pre">Stable</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">2</span></em><a class="headerlink" href="#datafusion.user_defined.Volatility.Stable" title="Link to this definition">#</a></dt> |
| <dd><p>Returns the same value for a given input within a single queries.</p> |
| <p>A stable function may return different values given the same input across |
| different queries but must return the same value for a given input within a |
| query. An example of this is the <code class="docutils literal notranslate"><span class="pre">Now</span></code> function. DataFusion will attempt to |
| inline <code class="docutils literal notranslate"><span class="pre">Stable</span></code> functions during planning, when possible. For query |
| <code class="docutils literal notranslate"><span class="pre">select</span> <span class="pre">col1,</span> <span class="pre">now()</span> <span class="pre">from</span> <span class="pre">t1</span></code>, it might take a while to execute but <code class="docutils literal notranslate"><span class="pre">now()</span></code> |
| column will be the same for each output row, which is evaluated during |
| planning.</p> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.Volatility.Volatile"> |
| <span class="sig-name descname"><span class="pre">Volatile</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">3</span></em><a class="headerlink" href="#datafusion.user_defined.Volatility.Volatile" title="Link to this definition">#</a></dt> |
| <dd><p>A volatile function may change the return value from evaluation to |
| evaluation.</p> |
| <p>Multiple invocations of a volatile function may return different results |
| when used in the same query. An example of this is the random() function. |
| DataFusion can not evaluate such functions during planning. In the query |
| <code class="docutils literal notranslate"><span class="pre">select</span> <span class="pre">col1,</span> <span class="pre">random()</span> <span class="pre">from</span> <span class="pre">t1</span></code>, <code class="docutils literal notranslate"><span class="pre">random()</span></code> function will be evaluated |
| for each output row, resulting in a unique random value for each row.</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">WindowEvaluator</span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator" title="Link to this definition">#</a></dt> |
| <dd><p>Evaluator class for user-defined window functions (UDWF).</p> |
| <p>It is up to the user to decide which evaluate function is appropriate.</p> |
| <div class="pst-scrollable-table-container"><table class="table"> |
| <thead> |
| <tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">uses_window_frame</span></code></p></th> |
| <th class="head"><p><code class="docutils literal notranslate"><span class="pre">supports_bounded_execution</span></code></p></th> |
| <th class="head"><p><code class="docutils literal notranslate"><span class="pre">include_rank</span></code></p></th> |
| <th class="head"><p>function_to_implement</p></th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr class="row-even"><td><p>False (default)</p></td> |
| <td><p>False (default)</p></td> |
| <td><p>False (default)</p></td> |
| <td><p><code class="docutils literal notranslate"><span class="pre">evaluate_all</span></code></p></td> |
| </tr> |
| <tr class="row-odd"><td><p>False</p></td> |
| <td><p>True</p></td> |
| <td><p>False</p></td> |
| <td><p><code class="docutils literal notranslate"><span class="pre">evaluate</span></code></p></td> |
| </tr> |
| <tr class="row-even"><td><p>False</p></td> |
| <td><p>True/False</p></td> |
| <td><p>True</p></td> |
| <td><p><code class="docutils literal notranslate"><span class="pre">evaluate_all_with_rank</span></code></p></td> |
| </tr> |
| <tr class="row-odd"><td><p>True</p></td> |
| <td><p>True/False</p></td> |
| <td><p>True/False</p></td> |
| <td><p><code class="docutils literal notranslate"><span class="pre">evaluate</span></code></p></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.evaluate"> |
| <span class="sig-name descname"><span class="pre">evaluate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">values</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Array</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eval_range</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">pyarrow.Scalar</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.evaluate" title="Link to this definition">#</a></dt> |
| <dd><p>Evaluate window function on a range of rows in an input partition.</p> |
| <p>This is the simplest and most general function to implement |
| but also the least performant as it creates output one row at |
| a time. It is typically much faster to implement stateful |
| evaluation using one of the other specialized methods on this |
| trait.</p> |
| <p>Returns a [<cite>ScalarValue</cite>] that is the value of the window |
| function within <cite>range</cite> for the entire partition. Argument |
| <cite>values</cite> contains the evaluation result of function arguments |
| and evaluation results of ORDER BY expressions. If function has a |
| single argument, <cite>values[1..]</cite> will contain ORDER BY expression results.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.evaluate_all"> |
| <span class="sig-name descname"><span class="pre">evaluate_all</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">values</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Array</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_rows</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">pyarrow.Array</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.evaluate_all" title="Link to this definition">#</a></dt> |
| <dd><p>Evaluate a window function on an entire input partition.</p> |
| <p>This function is called once per input <em>partition</em> for window functions that |
| <em>do not use</em> values from the window frame, such as |
| <a class="reference internal" href="../functions/index.html#datafusion.functions.row_number" title="datafusion.functions.row_number"><code class="xref py py-func docutils literal notranslate"><span class="pre">row_number()</span></code></a>, |
| <a class="reference internal" href="../functions/index.html#datafusion.functions.rank" title="datafusion.functions.rank"><code class="xref py py-func docutils literal notranslate"><span class="pre">rank()</span></code></a>, |
| <a class="reference internal" href="../functions/index.html#datafusion.functions.dense_rank" title="datafusion.functions.dense_rank"><code class="xref py py-func docutils literal notranslate"><span class="pre">dense_rank()</span></code></a>, |
| <a class="reference internal" href="../functions/index.html#datafusion.functions.percent_rank" title="datafusion.functions.percent_rank"><code class="xref py py-func docutils literal notranslate"><span class="pre">percent_rank()</span></code></a>, |
| <a class="reference internal" href="../functions/index.html#datafusion.functions.cume_dist" title="datafusion.functions.cume_dist"><code class="xref py py-func docutils literal notranslate"><span class="pre">cume_dist()</span></code></a>, |
| <a class="reference internal" href="../functions/index.html#datafusion.functions.lead" title="datafusion.functions.lead"><code class="xref py py-func docutils literal notranslate"><span class="pre">lead()</span></code></a>, |
| and <a class="reference internal" href="../functions/index.html#datafusion.functions.lag" title="datafusion.functions.lag"><code class="xref py py-func docutils literal notranslate"><span class="pre">lag()</span></code></a>.</p> |
| <p>It produces the result of all rows in a single pass. It |
| expects to receive the entire partition as the <code class="docutils literal notranslate"><span class="pre">value</span></code> and |
| must produce an output column with one output row for every |
| input row.</p> |
| <p><code class="docutils literal notranslate"><span class="pre">num_rows</span></code> is required to correctly compute the output in case |
| <code class="docutils literal notranslate"><span class="pre">len(values)</span> <span class="pre">==</span> <span class="pre">0</span></code></p> |
| <p>Implementing this function is an optimization. Certain window |
| functions are not affected by the window frame definition or |
| the query doesn’t have a frame, and <code class="docutils literal notranslate"><span class="pre">evaluate</span></code> skips the |
| (costly) window frame boundary calculation and the overhead of |
| calling <code class="docutils literal notranslate"><span class="pre">evaluate</span></code> for each output row.</p> |
| <p>For example, the <cite>LAG</cite> built in window function does not use |
| the values of its window frame (it can be computed in one shot |
| on the entire partition with <code class="docutils literal notranslate"><span class="pre">Self::evaluate_all</span></code> regardless of the |
| window defined in the <code class="docutils literal notranslate"><span class="pre">OVER</span></code> clause)</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>lag(x, 1) OVER (ORDER BY z ROWS BETWEEN 2 PRECEDING AND 3 FOLLOWING) |
| </pre></div> |
| </div> |
| <p>However, <code class="docutils literal notranslate"><span class="pre">avg()</span></code> computes the average in the window and thus |
| does use its window frame.</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>avg(x) OVER (PARTITION BY y ORDER BY z ROWS BETWEEN 2 PRECEDING AND 3 FOLLOWING) |
| </pre></div> |
| </div> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.evaluate_all_with_rank"> |
| <span class="sig-name descname"><span class="pre">evaluate_all_with_rank</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">num_rows</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ranks_in_partition</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">pyarrow.Array</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.evaluate_all_with_rank" title="Link to this definition">#</a></dt> |
| <dd><p>Called for window functions that only need the rank of a row.</p> |
| <p>Evaluate the partition evaluator against the partition using |
| the row ranks. For example, <code class="docutils literal notranslate"><span class="pre">rank(col("a"))</span></code> produces</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>a | rank |
| - + ---- |
| A | 1 |
| A | 1 |
| C | 3 |
| D | 4 |
| D | 4 |
| </pre></div> |
| </div> |
| <p>For this case, <cite>num_rows</cite> would be <cite>5</cite> and the |
| <cite>ranks_in_partition</cite> would be called with</p> |
| <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>[ |
| (0,1), |
| (2,2), |
| (3,4), |
| ] |
| </pre></div> |
| </div> |
| <p>The user must implement this method if <code class="docutils literal notranslate"><span class="pre">include_rank</span></code> returns True.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.get_range"> |
| <span class="sig-name descname"><span class="pre">get_range</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">idx</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_rows</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.get_range" title="Link to this definition">#</a></dt> |
| <dd><p>Return the range for the window function.</p> |
| <p>If <cite>uses_window_frame</cite> flag is <cite>false</cite>. This method is used to |
| calculate required range for the window function during |
| stateful execution.</p> |
| <p>Generally there is no required range, hence by default this |
| returns smallest range(current row). e.g seeing current row is |
| enough to calculate window result (such as row_number, rank, |
| etc)</p> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>idx:</strong> – Current index:</p></li> |
| <li><p><strong>num_rows</strong> – Number of rows.</p></li> |
| </ul> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.include_rank"> |
| <span class="sig-name descname"><span class="pre">include_rank</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.include_rank" title="Link to this definition">#</a></dt> |
| <dd><p>Can this function be evaluated with (only) rank?</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.is_causal"> |
| <span class="sig-name descname"><span class="pre">is_causal</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.is_causal" title="Link to this definition">#</a></dt> |
| <dd><p>Get whether evaluator needs future data for its result.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.memoize"> |
| <span class="sig-name descname"><span class="pre">memoize</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.memoize" title="Link to this definition">#</a></dt> |
| <dd><p>Perform a memoize operation to improve performance.</p> |
| <p>When the window frame has a fixed beginning (e.g UNBOUNDED |
| PRECEDING), some functions such as FIRST_VALUE and |
| NTH_VALUE do not need the (unbounded) input once they have |
| seen a certain amount of input.</p> |
| <p><cite>memoize</cite> is called after each input batch is processed, and |
| such functions can save whatever they need</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.supports_bounded_execution"> |
| <span class="sig-name descname"><span class="pre">supports_bounded_execution</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.supports_bounded_execution" title="Link to this definition">#</a></dt> |
| <dd><p>Can the window function be incrementally computed using bounded memory?</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowEvaluator.uses_window_frame"> |
| <span class="sig-name descname"><span class="pre">uses_window_frame</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowEvaluator.uses_window_frame" title="Link to this definition">#</a></dt> |
| <dd><p>Does the window function use the values from the window frame?</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">WindowUDF</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.WindowEvaluator" title="datafusion.user_defined.WindowEvaluator"><span class="pre">WindowEvaluator</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datafusion.user_defined.WindowUDF" title="Link to this definition">#</a></dt> |
| <dd><p>Class for performing window user-defined functions (UDF).</p> |
| <p>Window UDFs operate on a partition of rows. See |
| also <a class="reference internal" href="#datafusion.user_defined.ScalarUDF" title="datafusion.user_defined.ScalarUDF"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScalarUDF</span></code></a> for operating on a row by row basis.</p> |
| <p>Instantiate a user-defined window function (UDWF).</p> |
| <p>See <a class="reference internal" href="#datafusion.user_defined.udwf" title="datafusion.user_defined.udwf"><code class="xref py py-func docutils literal notranslate"><span class="pre">udwf()</span></code></a> for a convenience function and argument |
| descriptions.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF.__call__"> |
| <span class="sig-name descname"><span class="pre">__call__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF.__call__" title="Link to this definition">#</a></dt> |
| <dd><p>Execute the UDWF.</p> |
| <p>This function is not typically called by an end user. These calls will |
| occur during the evaluation of the dataframe.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF.__repr__"> |
| <span class="sig-name descname"><span class="pre">__repr__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF.__repr__" title="Link to this definition">#</a></dt> |
| <dd><p>Print a string representation of the Window UDF.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF._create_window_udf"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_create_window_udf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.WindowEvaluator" title="datafusion.user_defined.WindowEvaluator"><span class="pre">WindowEvaluator</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.WindowUDF" title="datafusion.user_defined.WindowUDF"><span class="pre">WindowUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF._create_window_udf" title="Link to this definition">#</a></dt> |
| <dd><p>Create a WindowUDF instance from function arguments.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF._create_window_udf_decorator"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_create_window_udf_decorator</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.WindowEvaluator" title="datafusion.user_defined.WindowEvaluator"><span class="pre">WindowEvaluator</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="../expr/index.html#datafusion.expr.Expr" title="datafusion.expr.Expr"><span class="pre">datafusion.expr.Expr</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF._create_window_udf_decorator" title="Link to this definition">#</a></dt> |
| <dd><p>Create a decorator for a WindowUDF.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF._from_internal"> |
| <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_from_internal</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">internal</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">datafusion._internal.WindowUDF</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.WindowUDF" title="datafusion.user_defined.WindowUDF"><span class="pre">WindowUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF._from_internal" title="Link to this definition">#</a></dt> |
| <dd><p>Wrap an already-constructed internal <code class="docutils literal notranslate"><span class="pre">WindowUDF</span></code> handle.</p> |
| <p>Used by <code class="xref py py-meth docutils literal notranslate"><span class="pre">SessionContext.udwf()</span></code> to surface a function looked |
| up from the session’s function registry without re-running |
| <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code>.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF._get_default_name"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_get_default_name</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">str</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF._get_default_name" title="Link to this definition">#</a></dt> |
| <dd><p>Get the default name for a function based on its attributes.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF._normalize_input_types"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">_normalize_input_types</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF._normalize_input_types" title="Link to this definition">#</a></dt> |
| <dd><p>Convert a single DataType to a list if needed.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF.from_pycapsule"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_pycapsule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.WindowUDFExportable" title="datafusion.user_defined.WindowUDFExportable"><span class="pre">WindowUDFExportable</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.WindowUDF" title="datafusion.user_defined.WindowUDF"><span class="pre">WindowUDF</span></a></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF.from_pycapsule" title="Link to this definition">#</a></dt> |
| <dd><p>Create a Window UDF from WindowUDF PyCapsule object.</p> |
| <p>This function will instantiate a Window UDF that uses a DataFusion |
| WindowUDF that is exported via the FFI bindings.</p> |
| </dd></dl> |
| |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF.udwf"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udwf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.WindowUDF" title="datafusion.user_defined.WindowUDF"><span class="pre">WindowUDF</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF.udwf" title="Link to this definition">#</a></dt> |
| <dt class="sig sig-object py"> |
| <em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">udwf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#datafusion.user_defined.WindowEvaluator" title="datafusion.user_defined.WindowEvaluator"><span class="pre">WindowEvaluator</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">input_types</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">return_type</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">volatility</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><span class="pre">Volatility</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#datafusion.user_defined.WindowUDF" title="datafusion.user_defined.WindowUDF"><span class="pre">WindowUDF</span></a></span></span></dt> |
| <dd><p>Create a new User-Defined Window Function (UDWF).</p> |
| <p>This class can be used both as either a function or a decorator.</p> |
| <dl class="simple"> |
| <dt>Usage:</dt><dd><ul class="simple"> |
| <li><p>As a function: <code class="docutils literal notranslate"><span class="pre">udwf(func,</span> <span class="pre">input_types,</span> <span class="pre">return_type,</span> <span class="pre">volatility,</span> <span class="pre">name)</span></code>.</p></li> |
| <li><p>As a decorator: <code class="docutils literal notranslate"><span class="pre">@udwf(input_types,</span> <span class="pre">return_type,</span> <span class="pre">volatility,</span> <span class="pre">name)</span></code>. |
| When using <code class="docutils literal notranslate"><span class="pre">udwf</span></code> as a decorator, do not pass <code class="docutils literal notranslate"><span class="pre">func</span></code> explicitly.</p></li> |
| </ul> |
| </dd> |
| </dl> |
| <p class="rubric">Examples</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span><span class="w"> </span><span class="nn">datafusion.user_defined</span><span class="w"> </span><span class="kn">import</span> <span class="n">WindowUDF</span><span class="p">,</span> <span class="n">WindowEvaluator</span><span class="p">,</span> <span class="n">udwf</span> |
| <span class="gp">>>> </span><span class="k">class</span><span class="w"> </span><span class="nc">BiasedNumbers</span><span class="p">(</span><span class="n">WindowEvaluator</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="bp">self</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="n">start</span> |
| <span class="gp">... </span> <span class="k">def</span><span class="w"> </span><span class="nf">evaluate_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">num_rows</span><span class="p">):</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">pa</span><span class="o">.</span><span class="n">array</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">start</span> <span class="o">+</span> <span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">num_rows</span><span class="p">)])</span> |
| </pre></div> |
| </div> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udwf</span></code> as a function:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">udwf1</span> <span class="o">=</span> <span class="n">WindowUDF</span><span class="o">.</span><span class="n">udwf</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="n">BiasedNumbers</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="s2">"immutable"</span><span class="p">)</span> |
| <span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">bias_10</span><span class="p">()</span> <span class="o">-></span> <span class="n">BiasedNumbers</span><span class="p">:</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">BiasedNumbers</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> |
| <span class="gp">>>> </span><span class="n">udwf2</span> <span class="o">=</span> <span class="n">udwf</span><span class="p">(</span><span class="n">bias_10</span><span class="p">,</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="s2">"immutable"</span><span class="p">)</span> |
| <span class="gp">>>> </span><span class="n">udwf3</span> <span class="o">=</span> <span class="n">udwf</span><span class="p">(</span> |
| <span class="gp">... </span> <span class="k">lambda</span><span class="p">:</span> <span class="n">BiasedNumbers</span><span class="p">(</span><span class="mi">20</span><span class="p">),</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="s2">"immutable"</span> |
| <span class="gp">... </span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Using <code class="docutils literal notranslate"><span class="pre">udwf</span></code> as a decorator:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nd">@WindowUDF</span><span class="o">.</span><span class="n">udwf</span><span class="p">(</span><span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="n">pa</span><span class="o">.</span><span class="n">int64</span><span class="p">(),</span> <span class="s2">"immutable"</span><span class="p">)</span> |
| <span class="gp">... </span><span class="k">def</span><span class="w"> </span><span class="nf">biased_numbers</span><span class="p">():</span> |
| <span class="gp">... </span> <span class="k">return</span> <span class="n">BiasedNumbers</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> |
| </pre></div> |
| </div> |
| <p>Apply to a dataframe:</p> |
| <div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">ctx</span> <span class="o">=</span> <span class="n">dfn</span><span class="o">.</span><span class="n">SessionContext</span><span class="p">()</span> |
| <span class="gp">>>> </span><span class="n">df</span> <span class="o">=</span> <span class="n">ctx</span><span class="o">.</span><span class="n">from_pydict</span><span class="p">({</span><span class="s2">"a"</span><span class="p">:</span> <span class="p">[</span><span class="mi">10</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">30</span><span class="p">]})</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">udwf1</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"result"</span><span class="p">))</span><span class="o">.</span><span class="n">to_pydict</span><span class="p">()</span> |
| <span class="go">{'result': [0, 1, 2]}</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">udwf2</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"result"</span><span class="p">))</span><span class="o">.</span><span class="n">to_pydict</span><span class="p">()</span> |
| <span class="go">{'result': [10, 11, 12]}</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">udwf3</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"result"</span><span class="p">))</span><span class="o">.</span><span class="n">to_pydict</span><span class="p">()</span> |
| <span class="go">{'result': [20, 21, 22]}</span> |
| <span class="gp">>>> </span><span class="n">df</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">biased_numbers</span><span class="p">(</span><span class="n">col</span><span class="p">(</span><span class="s2">"a"</span><span class="p">))</span><span class="o">.</span><span class="n">alias</span><span class="p">(</span><span class="s2">"result"</span><span class="p">))</span><span class="o">.</span><span class="n">to_pydict</span><span class="p">()</span> |
| <span class="go">{'result': [10, 11, 12]}</span> |
| </pre></div> |
| </div> |
| <dl class="field-list simple"> |
| <dt class="field-odd">Parameters<span class="colon">:</span></dt> |
| <dd class="field-odd"><ul class="simple"> |
| <li><p><strong>func</strong> – Only needed when calling as a function. Skip this argument when |
| using <code class="docutils literal notranslate"><span class="pre">udwf</span></code> as a decorator. If you have a Rust backed WindowUDF |
| within a PyCapsule, you can pass this parameter and ignore the rest. |
| They will be determined directly from the underlying function. See |
| the online documentation for more information.</p></li> |
| <li><p><strong>input_types</strong> – The data types of the arguments.</p></li> |
| <li><p><strong>return_type</strong> – The data type of the return value.</p></li> |
| <li><p><strong>volatility</strong> – See <a class="reference internal" href="#datafusion.user_defined.Volatility" title="datafusion.user_defined.Volatility"><code class="xref py py-class docutils literal notranslate"><span class="pre">Volatility</span></code></a> for allowed values.</p></li> |
| <li><p><strong>name</strong> – A descriptive name for the function.</p></li> |
| </ul> |
| </dd> |
| <dt class="field-even">Returns<span class="colon">:</span></dt> |
| <dd class="field-even"><p>A user-defined window function that can be used in window function calls.</p> |
| </dd> |
| </dl> |
| </dd></dl> |
| |
| <dl class="py attribute"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF._udwf"> |
| <span class="sig-name descname"><span class="pre">_udwf</span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDF._udwf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py property"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDF.name"> |
| <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">name</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#datafusion.user_defined.WindowUDF.name" title="Link to this definition">#</a></dt> |
| <dd><p>Return the registered name of this UDWF.</p> |
| <p>For UDWFs imported via the FFI capsule protocol, this is the |
| name the capsule itself reports — not the <code class="docutils literal notranslate"><span class="pre">name</span></code> argument |
| passed to the constructor (which is ignored on the FFI path).</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py class"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDFExportable"> |
| <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">WindowUDFExportable</span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDFExportable" title="Link to this definition">#</a></dt> |
| <dd><p>Bases: <code class="xref py py-obj docutils literal notranslate"><span class="pre">Protocol</span></code></p> |
| <p>Type hint for object that has __datafusion_window_udf__ PyCapsule.</p> |
| <dl class="py method"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.WindowUDFExportable.__datafusion_window_udf__"> |
| <span class="sig-name descname"><span class="pre">__datafusion_window_udf__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">object</span></span></span><a class="headerlink" href="#datafusion.user_defined.WindowUDFExportable.__datafusion_window_udf__" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="py function"> |
| <dt class="sig sig-object py" id="datafusion.user_defined._is_pycapsule"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">_is_pycapsule</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">object</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">TypeGuard</span><span class="p"><span class="pre">[</span></span><span class="pre">_typeshed.CapsuleType</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined._is_pycapsule" title="Link to this definition">#</a></dt> |
| <dd><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> when <code class="docutils literal notranslate"><span class="pre">value</span></code> is a CPython <code class="docutils literal notranslate"><span class="pre">PyCapsule</span></code>.</p> |
| </dd></dl> |
| |
| <dl class="py function"> |
| <dt class="sig sig-object py" id="datafusion.user_defined._wrap_session_kwarg_for_udtf"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">_wrap_session_kwarg_for_udtf</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">func</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">collections.abc.Callable</span><span class="p"><span class="pre">[</span></span><span class="pre">Ellipsis</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined._wrap_session_kwarg_for_udtf" title="Link to this definition">#</a></dt> |
| <dd><p>Adapt the raw internal session pyo3 object back to a Python wrapper.</p> |
| <p>The Rust call site forwards a <code class="docutils literal notranslate"><span class="pre">datafusion._internal.SessionContext</span></code>, |
| but UDTF authors expect to interact with the public |
| <code class="xref py py-class docutils literal notranslate"><span class="pre">datafusion.SessionContext</span></code> wrapper. This closure wraps the |
| internal object once per call before delegating to <code class="docutils literal notranslate"><span class="pre">func</span></code>.</p> |
| </dd></dl> |
| |
| <dl class="py function"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.data_type_or_field_to_field"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">data_type_or_field_to_field</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">value</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">pyarrow.DataType</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">pyarrow.Field</span></span></span><a class="headerlink" href="#datafusion.user_defined.data_type_or_field_to_field" title="Link to this definition">#</a></dt> |
| <dd><p>Helper function to return a Field from either a Field or DataType.</p> |
| </dd></dl> |
| |
| <dl class="py function"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.data_types_or_fields_to_field_list"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">data_types_or_fields_to_field_list</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">inputs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">collections.abc.Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Field</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.DataType</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.Field</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">pyarrow.DataType</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">pyarrow.Field</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#datafusion.user_defined.data_types_or_fields_to_field_list" title="Link to this definition">#</a></dt> |
| <dd><p>Helper function to return a list of Fields.</p> |
| </dd></dl> |
| |
| <dl class="py data"> |
| <dt class="sig sig-object py" id="datafusion.user_defined._R"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">_R</span></span><a class="headerlink" href="#datafusion.user_defined._R" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py data"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.udaf"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">udaf</span></span><a class="headerlink" href="#datafusion.user_defined.udaf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py data"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.udf"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">udf</span></span><a class="headerlink" href="#datafusion.user_defined.udf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py data"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.udtf"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">udtf</span></span><a class="headerlink" href="#datafusion.user_defined.udtf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="py data"> |
| <dt class="sig sig-object py" id="datafusion.user_defined.udwf"> |
| <span class="sig-prename descclassname"><span class="pre">datafusion.user_defined.</span></span><span class="sig-name descname"><span class="pre">udwf</span></span><a class="headerlink" href="#datafusion.user_defined.udwf" title="Link to this definition">#</a></dt> |
| <dd></dd></dl> |
| |
| </section> |
| </section> |
| |
| |
| </article> |
| |
| |
| |
| |
| |
| <footer class="prev-next-footer d-print-none"> |
| |
| <div class="prev-next-area"> |
| <a class="left-prev" |
| href="../unparser/index.html" |
| title="previous page"> |
| <i class="fa-solid fa-angle-left"></i> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">previous</p> |
| <p class="prev-next-title">datafusion.unparser</p> |
| </div> |
| </a> |
| <a class="right-next" |
| href="../../../links.html" |
| title="next page"> |
| <div class="prev-next-info"> |
| <p class="prev-next-subtitle">next</p> |
| <p class="prev-next-title">Links</p> |
| </div> |
| <i class="fa-solid fa-angle-right"></i> |
| </a> |
| </div> |
| </footer> |
| |
| </div> |
| |
| |
| |
| <dialog id="pst-secondary-sidebar-modal"></dialog> |
| <div id="pst-secondary-sidebar" class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner"> |
| |
| |
| <div class="sidebar-secondary-item"> |
| <div |
| id="pst-page-navigation-heading-2" |
| class="page-toc tocsection onthispage"> |
| <i class="fa-solid fa-list"></i> On this page |
| </div> |
| <nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2"> |
| <ul class="visible nav section-nav flex-column"> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#attributes">Attributes</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#classes">Classes</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#functions">Functions</a></li> |
| <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#module-contents">Module Contents</a><ul class="visible nav section-nav flex-column"> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Accumulator"><code class="docutils literal notranslate"><span class="pre">Accumulator</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="#datafusion.user_defined.Accumulator.evaluate"><code class="docutils literal notranslate"><span class="pre">Accumulator.evaluate()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Accumulator.merge"><code class="docutils literal notranslate"><span class="pre">Accumulator.merge()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Accumulator.state"><code class="docutils literal notranslate"><span class="pre">Accumulator.state()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Accumulator.update"><code class="docutils literal notranslate"><span class="pre">Accumulator.update()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF"><code class="docutils literal notranslate"><span class="pre">AggregateUDF</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="#datafusion.user_defined.AggregateUDF.__call__"><code class="docutils literal notranslate"><span class="pre">AggregateUDF.__call__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF.__repr__"><code class="docutils literal notranslate"><span class="pre">AggregateUDF.__repr__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF._from_internal"><code class="docutils literal notranslate"><span class="pre">AggregateUDF._from_internal()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF.from_pycapsule"><code class="docutils literal notranslate"><span class="pre">AggregateUDF.from_pycapsule()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF.udaf"><code class="docutils literal notranslate"><span class="pre">AggregateUDF.udaf()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF._udaf"><code class="docutils literal notranslate"><span class="pre">AggregateUDF._udaf</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDF.name"><code class="docutils literal notranslate"><span class="pre">AggregateUDF.name</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.AggregateUDFExportable"><code class="docutils literal notranslate"><span class="pre">AggregateUDFExportable</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="#datafusion.user_defined.AggregateUDFExportable.__datafusion_aggregate_udf__"><code class="docutils literal notranslate"><span class="pre">AggregateUDFExportable.__datafusion_aggregate_udf__()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.LogicalExtensionCodecExportable"><code class="docutils literal notranslate"><span class="pre">LogicalExtensionCodecExportable</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="#datafusion.user_defined.LogicalExtensionCodecExportable.__datafusion_logical_extension_codec__"><code class="docutils literal notranslate"><span class="pre">LogicalExtensionCodecExportable.__datafusion_logical_extension_codec__()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.PhysicalExtensionCodecExportable"><code class="docutils literal notranslate"><span class="pre">PhysicalExtensionCodecExportable</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="#datafusion.user_defined.PhysicalExtensionCodecExportable.__datafusion_physical_extension_codec__"><code class="docutils literal notranslate"><span class="pre">PhysicalExtensionCodecExportable.__datafusion_physical_extension_codec__()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF"><code class="docutils literal notranslate"><span class="pre">ScalarUDF</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="#datafusion.user_defined.ScalarUDF.__call__"><code class="docutils literal notranslate"><span class="pre">ScalarUDF.__call__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF.__repr__"><code class="docutils literal notranslate"><span class="pre">ScalarUDF.__repr__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF._from_internal"><code class="docutils literal notranslate"><span class="pre">ScalarUDF._from_internal()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF.from_pycapsule"><code class="docutils literal notranslate"><span class="pre">ScalarUDF.from_pycapsule()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF.udf"><code class="docutils literal notranslate"><span class="pre">ScalarUDF.udf()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF._udf"><code class="docutils literal notranslate"><span class="pre">ScalarUDF._udf</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDF.name"><code class="docutils literal notranslate"><span class="pre">ScalarUDF.name</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.ScalarUDFExportable"><code class="docutils literal notranslate"><span class="pre">ScalarUDFExportable</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="#datafusion.user_defined.ScalarUDFExportable.__datafusion_scalar_udf__"><code class="docutils literal notranslate"><span class="pre">ScalarUDFExportable.__datafusion_scalar_udf__()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.TableFunction"><code class="docutils literal notranslate"><span class="pre">TableFunction</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="#datafusion.user_defined.TableFunction.__call__"><code class="docutils literal notranslate"><span class="pre">TableFunction.__call__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.TableFunction.__repr__"><code class="docutils literal notranslate"><span class="pre">TableFunction.__repr__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.TableFunction._create_table_udf"><code class="docutils literal notranslate"><span class="pre">TableFunction._create_table_udf()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.TableFunction._create_table_udf_decorator"><code class="docutils literal notranslate"><span class="pre">TableFunction._create_table_udf_decorator()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.TableFunction.udtf"><code class="docutils literal notranslate"><span class="pre">TableFunction.udtf()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.TableFunction._udtf"><code class="docutils literal notranslate"><span class="pre">TableFunction._udtf</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Volatility"><code class="docutils literal notranslate"><span class="pre">Volatility</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="#datafusion.user_defined.Volatility.__str__"><code class="docutils literal notranslate"><span class="pre">Volatility.__str__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Volatility.Immutable"><code class="docutils literal notranslate"><span class="pre">Volatility.Immutable</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Volatility.Stable"><code class="docutils literal notranslate"><span class="pre">Volatility.Stable</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.Volatility.Volatile"><code class="docutils literal notranslate"><span class="pre">Volatility.Volatile</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator</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="#datafusion.user_defined.WindowEvaluator.evaluate"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.evaluate()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.evaluate_all"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.evaluate_all()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.evaluate_all_with_rank"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.evaluate_all_with_rank()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.get_range"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.get_range()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.include_rank"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.include_rank()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.is_causal"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.is_causal()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.memoize"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.memoize()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.supports_bounded_execution"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.supports_bounded_execution()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowEvaluator.uses_window_frame"><code class="docutils literal notranslate"><span class="pre">WindowEvaluator.uses_window_frame()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF"><code class="docutils literal notranslate"><span class="pre">WindowUDF</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="#datafusion.user_defined.WindowUDF.__call__"><code class="docutils literal notranslate"><span class="pre">WindowUDF.__call__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF.__repr__"><code class="docutils literal notranslate"><span class="pre">WindowUDF.__repr__()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF._create_window_udf"><code class="docutils literal notranslate"><span class="pre">WindowUDF._create_window_udf()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF._create_window_udf_decorator"><code class="docutils literal notranslate"><span class="pre">WindowUDF._create_window_udf_decorator()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF._from_internal"><code class="docutils literal notranslate"><span class="pre">WindowUDF._from_internal()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF._get_default_name"><code class="docutils literal notranslate"><span class="pre">WindowUDF._get_default_name()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF._normalize_input_types"><code class="docutils literal notranslate"><span class="pre">WindowUDF._normalize_input_types()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF.from_pycapsule"><code class="docutils literal notranslate"><span class="pre">WindowUDF.from_pycapsule()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF.udwf"><code class="docutils literal notranslate"><span class="pre">WindowUDF.udwf()</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF._udwf"><code class="docutils literal notranslate"><span class="pre">WindowUDF._udwf</span></code></a></li> |
| <li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDF.name"><code class="docutils literal notranslate"><span class="pre">WindowUDF.name</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.WindowUDFExportable"><code class="docutils literal notranslate"><span class="pre">WindowUDFExportable</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="#datafusion.user_defined.WindowUDFExportable.__datafusion_window_udf__"><code class="docutils literal notranslate"><span class="pre">WindowUDFExportable.__datafusion_window_udf__()</span></code></a></li> |
| </ul> |
| </li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined._is_pycapsule"><code class="docutils literal notranslate"><span class="pre">_is_pycapsule()</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined._wrap_session_kwarg_for_udtf"><code class="docutils literal notranslate"><span class="pre">_wrap_session_kwarg_for_udtf()</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.data_type_or_field_to_field"><code class="docutils literal notranslate"><span class="pre">data_type_or_field_to_field()</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.data_types_or_fields_to_field_list"><code class="docutils literal notranslate"><span class="pre">data_types_or_fields_to_field_list()</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined._R"><code class="docutils literal notranslate"><span class="pre">_R</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.udaf"><code class="docutils literal notranslate"><span class="pre">udaf</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.udf"><code class="docutils literal notranslate"><span class="pre">udf</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.udtf"><code class="docutils literal notranslate"><span class="pre">udtf</span></code></a></li> |
| <li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#datafusion.user_defined.udwf"><code class="docutils literal notranslate"><span class="pre">udwf</span></code></a></li> |
| </ul> |
| </li> |
| </ul> |
| </nav></div> |
| |
| </div></div> |
| |
| |
| </div> |
| <footer class="bd-footer-content"> |
| |
| </footer> |
| |
| </main> |
| </div> |
| </div> |
| |
| <!-- Scripts loaded after <body> so the DOM is not blocked --> |
| <script defer src="../../../_static/scripts/bootstrap.js?digest=8878045cc6db502f8baf"></script> |
| <script defer src="../../../_static/scripts/pydata-sphinx-theme.js?digest=8878045cc6db502f8baf"></script> |
| |
| <!-- Based on pydata_sphinx_theme/footer.html --> |
| <footer class="footer mt-5 mt-md-0"> |
| <div class="container"> |
| |
| <div class="footer-item"> |
| <p>Apache Arrow DataFusion, Arrow DataFusion, Apache, the Apache feather logo, and the Apache Arrow DataFusion project logo</p> |
| <p>are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p> |
| </div> |
| </div> |
| </footer> |
| |
| |
| </body> |
| </html> |