Crate gmt_dos_clients_arrow

Crate gmt_dos_clients_arrow 

Source
Expand description

§Actor client for Apache Arrow

A simulation data logger that records the data in the Apache Arrow format and automatically saves the data into a Parquet file (data.parquet) at the end of a simulation.

§Example

An Arrow logger setup for 1000 time steps

use gmt_dos_clients_arrow::Arrow;
use gmt_dos_actors::prelude::*;
let logging = Arrow::builder(1000).build();

setting the name of the Parquet file


let logging = Arrow::builder(1000)
                       .filename("my_data.parquet")
                       .build();

opting out of saving the data to the Parquet file


let logging = Arrow::builder(1000)
                       .no_save()
                       .build();

Logging an output into an Arrow logger:

use gmt_dos_actors::prelude::*;
use gmt_dos_clients::signals::Signals;
use gmt_dos_clients_arrow::Arrow;
use interface::UID;

let logging = Arrow::builder(1000).build().into_arcx();
let mut sink = Terminator::<_>::new(logging);
let mut source: Initiator<_> = Signals::new(1, 100).into();
#[derive(UID)]
enum Source {};
source.add_output().build::<Source>().logn(&mut sink, 42);

or if Signals implements the trait: Size<Source>

use gmt_dos_actors::prelude::*;
use gmt_dos_clients::signals::Signals;
use gmt_dos_clients_arrow::Arrow;
use interface::{Size, UID};

let logging = Arrow::builder(1000).build().into_arcx();
let mut sink = Terminator::<_>::new(logging);
let mut source: Initiator<_> = Signals::new(1, 100).into();
#[derive(UID)]
enum Source {};
impl Size<Source> for Signals {
    fn len(&self) -> usize {
        42
    }
}
source.add_output().build::<Source>().log(&mut sink);

Structs§

Arrow
Apache Arrow client
ArrowBuilder
Arrow format logger builder

Enums§

ArrowError
FileFormat
Format to write data to file
MatFormat
Matlab data format