etl-unit 0.1.0

Semantic data model for ETL units — qualities and measurements over subjects and time. Built on Polars.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use polars::prelude::{DataFrame, IntoLazy};

use crate::{EtlResult, unit::PointwiseExpr};

/// Compute a pointwise derivation.
/// TODO: Canonical name
pub(crate) fn compute_pointwise(
    df: DataFrame,
    output_name: &str,
    expr: &PointwiseExpr,
) -> EtlResult<DataFrame> {
    let polars_expr = expr.to_polars_expr(output_name)?;
    let result = df.lazy().with_column(polars_expr).collect()?;
    Ok(result)
}