14 个版本 (9 个稳定版)
2.1.0 | 2024年2月29日 |
---|---|
2.0.0 | 2023年9月14日 |
1.1.1 | 2023年9月10日 |
1.1.0 | 2023年6月14日 |
0.1.0 | 2022年10月3日 |
#1044 in 科学
每月下载 63 次
用于 6 crates
275KB
4K SLoC
gmt_dos-clients_arrow
一个使用 Apache Arrow 数据格式和 Parquet 数据文件记录演员输出时间序列的数据记录器客户端。
lib.rs
:
Apache Arrow 的客户端
一个模拟数据记录器,以 Apache Arrow 格式记录数据,并在模拟结束时自动将数据保存到 Parquet 文件(data.parquet
)。
示例
为 1000 个时间步设置 Arrow 记录器
use gmt_dos_clients_arrow::Arrow;
use gmt_dos_actors::prelude::*;
let logging = Arrow::builder(1000).build();
设置 Parquet 文件名称
let logging = Arrow::builder(1000)
.filename("my_data.parquet")
.build();
选择不将数据保存到 Parquet 文件
let logging = Arrow::builder(1000)
.no_save()
.build();
将输出记录到 [Arrow] 记录器
use gmt_dos_actors::prelude::*;
use gmt_dos_clients::Signals;
use gmt_dos_clients_arrow::Arrow;
use gmt_dos_clients::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).await;
或如果 Signals
实现了该特性:Size<Source>
use gmt_dos_actors::prelude::*;
use gmt_dos_clients::Signals;
use gmt_dos_clients_arrow::Arrow;
use gmt_dos_clients::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).await;
依赖项
~30–41MB
~772K SLoC