Skip to content

gaslamp


Class: LazyFrame

A lazy evaluation wrapper specialized in Expression-based filtering.

Queues multiple filter operations using Expression instances and applies internal optimizations (predicate fusion, short-circuit evaluation) before materialization.

Remarks

LazyFrame accepts only Expression instances for filtering, enabling: - Predicate fusion: multiple filters are combined via AND logic - Short-circuit evaluation: evaluation stops as soon as a condition fails - Future optimizations: predicate reordering by selectivity, pushdown

Use LazyFrame.from(df) to create an instance. Do not construct directly.

Example

TypeScript
const df = BareFrame.fromColumns({
  name: ["Alice", "Bob", "Charlie"],
  age: [25, 17, 30],
});

const result = LazyFrame.from(df)
  .filter(Expression.col("age").ge(18))
  .filter(Expression.col("name").startsWith("C"))
  .collect();
// name    | age
// Charlie | 30

Since

0.68.0

DataFrame

from()

static from(source): LazyFrame

Create a new LazyFrame from a BareFrame.

Parameters

source

BareFrame

Source BareFrame to wrap

Returns

LazyFrame

New LazyFrame with empty expression queue

Example

TypeScript
const lazy = LazyFrame.from(df)
  .filter(Expression.col("age").ge(18));

Since

0.68.0


filter()

filter(expr): LazyFrame

Queue a filter operation with an Expression.

Parameters

expr

Expression

Expression instance defining the filter condition

Returns

LazyFrame

New LazyFrame with the filter expression appended

Remarks

The expression is stored but not evaluated until collect() is invoked. Multiple filter calls are combined via AND logic during materialization. Important: Do not modify the expression after passing it to filter().

Example

TypeScript
const adults = LazyFrame.from(df)
  .filter(Expression.col("age").ge(18))
  .collect();

Since

0.68.0


collect()

collect(): BareFrame

Execute all queued filter operations and return the materialized result.

Returns

BareFrame

Materialized BareFrame with all filter expressions applied

Remarks

All queued expressions are fused into a single combined predicate using AND logic. This enables short-circuit evaluation: if any condition fails, the row is rejected immediately without evaluating remaining conditions.

Example

TypeScript
const filtered = LazyFrame.from(df)
  .filter(Expression.col("status").eq("active"))
  .filter(Expression.col("age").gt(21))
  .collect();

Since

0.68.0