python_udf
Eingebettete CPython-UDFs für DuckDB — py_eval, py_agg, py_scan, py_register, py_call, py_map
Maintainer: alitrack
Installation und Laden
INSTALL python_udf FROM community;LOAD python_udf;Beispiel
LOAD python_udf;SELECT py_eval('lambda x: x * 2 + 1', x) FROM range(10) t(x);
-- Aggregate UDFSELECT py_agg('sum', x) FROM range(100) t(x);
-- Scan from PythonSELECT * FROM py_scan('lambda _: [{"a":1}, {"a":2}]');
-- Register persistent UDFSELECT py_register('dbl', 'lambda x: x * 2');
-- Call registered UDFSELECT py_call('dbl', 21);
-- Map valuesSELECT py_map('ord', 'hello world');Über python_udf
CPython-UDFs für DuckDB
Führen Sie Python-Code direkt in SQL-Abfragen aus, mit in DuckDB eingebettetem CPython.
7 Funktionen:
| Function | Type | Description |
|---|---|---|
py_eval(name, arg..) |
Scalar | Evaluate Python lambda/function per row |
py_agg(name, arg) |
Aggregate | Full-table aggregate UDF |
py_scan(func) |
Table | Generate rows from Python |
py_register(name, func) |
Management | Register a Python UDF |
py_call(name, arg..) |
Scalar | Call a registered UDF |
py_map(func, arg..) |
Scalar | Map a function over values |
py_list(name) |
Utility | List registered UDFs |
Design:
- CPython eingebettet über PyO3 (Rust-FFI)
- Frischer Python-Interpreter pro DuckDB-Verbindung
- Unterstützt Python 3.11, 3.12, 3.13
- macOS und Linux x64 unterstützt
Hinweis: Der Binärname der Erweiterung lautet python_udf, um eine Kollision
mit der Kern-Erweiterung python von DuckDB zu vermeiden.
Das Quell-Repository bleibt duckdb-python.
Hinzugefügte Funktionen
Diese Erweiterung fügt keine Funktionen hinzu.
Überladene Funktionen
Diese Erweiterung fügt keine Funktionsüberladungen hinzu.
Hinzugefügte Typen
Diese Erweiterung fügt keine Typen hinzu.
Hinzugefügte Einstellungen
Diese Erweiterung fügt keine Einstellungen hinzu.