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 科学

Download history 57/week @ 2024-03-11 11/week @ 2024-03-18 91/week @ 2024-04-01 19/week @ 2024-05-20 6/week @ 2024-05-27 17/week @ 2024-06-03 20/week @ 2024-06-10 10/week @ 2024-06-17 16/week @ 2024-06-24

每月下载 63
用于 6 crates

MIT 许可证

275KB
4K SLoC

gmt_dos-clients_arrow

Crates.io Documentation

一个使用 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