apache / apache/datafusion-python

Expose SessionContext.create_physical_expr for logical-to-physical Expr conversion

Abierto
#1,573 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
604
Forks
174
Merge medio
1 d 7 h
PR fusionados (30 d)
4

Descripción

## Background

`SessionContext::create_physical_expr` converts a logical `Expr` against a `DFSchema` into a `PhysicalExpr` that can be evaluated directly against Arrow record batches. The Python bindings do not expose this.

## Upstream signature

```rust
pub fn create_physical_expr(
&self,
expr: Expr,
input_dfschema: &DFSchema,
) -> Result>
```

## User value

Useful when callers want to evaluate an Expr against an in-memory RecordBatch without going through DataFrame execution -- for example to score / filter individual batches in a custom processing loop, to debug optimization rewrites, or to feed an expression into a custom physical operator. Niche but irreplaceable for that audience.

## Why deferred

Effort is small (~180-280 LOC) but requires a new `PyPhysicalExpr` wrapper exposing the opaque `Arc` trait object plus an `evaluate(batch) -> ColumnarValue` method to make it useful from Python. Zero open user requests at the time of audit. Filed for tracking; revisit when a user surfaces a concrete need or when adjacent FFI work pulls `PhysicalExpr` into the binding surface.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.