pub fn query(df: &DataFrame, sql: &str) -> IngestionResult<DataFrame>Expand description
Execute a SQL query against a single DataFrame.
The input is registered as the table DEFAULT_TABLE (i.e. df), so callers should write
queries like: SELECT ... FROM df WHERE ....
ยงExample
use rust_data_processing::pipeline::DataFrame;
use rust_data_processing::sql;
use rust_data_processing::types::{DataSet, DataType, Field, Schema, Value};
let ds = DataSet::new(
Schema::new(vec![
Field::new("id", DataType::Int64),
Field::new("active", DataType::Bool),
]),
vec![
vec![Value::Int64(1), Value::Bool(true)],
vec![Value::Int64(2), Value::Bool(false)],
],
);
let out = sql::query(
&DataFrame::from_dataset(&ds)?,
"SELECT id FROM df WHERE active = TRUE ORDER BY id",
)?
.collect()?;
assert_eq!(out.row_count(), 1);