llkv-csv 0.8.5-alpha

CSV reader and writer for the LLKV toolkit.
Documentation
use std::env;
use std::path::PathBuf;

use arrow::util::pretty::print_batches;
use llkv_csv::{CsvReadOptions, CsvReader, CsvResult};

#[allow(clippy::print_stdout, clippy::print_stderr)]
fn main() -> CsvResult<()> {
    let mut args = env::args().skip(1);
    let path = match args.next() {
        Some(p) => PathBuf::from(p),
        None => {
            eprintln!("Usage: stream_csv <path-to-csv>");
            std::process::exit(2);
        }
    };

    let options = CsvReadOptions::default();
    let reader = CsvReader::with_options(options.clone());
    let session = reader.open(path.as_path())?;
    let schema = session.schema();

    println!("Inferred schema:\n{schema:#?}");

    for maybe_batch in session {
        let batch = maybe_batch?;
        print_batches(&[batch])?;
    }

    Ok(())
}