15 个版本 (5 个稳定版)
1.1.3 | 2023年6月21日 |
---|---|
1.0.0 | 2021年5月12日 |
0.5.6 | 2021年5月12日 |
0.5.5 | 2021年4月21日 |
0.1.0 | 2021年3月27日 |
#164 in 科学
在 kda-tools 中使用
1.5MB
395 行
包含 (debian 包, 705KB) releases/kvc_1.1.1_amd64.deb, (debian 包, 640KB) releases/kvc_0.4.0_amd64.deb
这个 crate / 包是一个 Rust 模块,用于处理流输入和输出。它的目的是对一组流键进行计数值或累积。它设计得非常简单,可以消费/产生空格分隔的值。
键值计数
我使用这个库来解析类似日志的简单日志,其中每行都是以下形式
2021-03-01 warnings:3 error ... (other items with optional counts)
假设我想对这份数据进行一些处理。这是一个非常易读/易写的格式,但不是标准的。
我们可以使用 kvc-stream
将其转换为类似 k-v 对流的东西,或者使用 kvc-df
将其转换为 pandas 数据框
规范
kvc 日志格式非常简单。
- 每行都是一个“帧”
- 一个帧可以有一个可选的“日期标题”
- 一个帧由空格分隔的键的字符串组成,每个键可以有一个可选的计数
- '#' 结束帧,并用作注释
这些是有效的帧,每行一个
a
event event
2021-04-01 april_fools_pranks:4
2021-03-01 key another_key a-third-key <weird-symbols_ar_ok!> this_has_occured_three_times:3 this_twice this_twice
2021-04-02 # Nothing happened that day
假设它存储在 data.txt
中。(试试看!)
运行 <data.txt kvc-stream
产生
1 a 1
2 event 2
3 Date 2021-04-01
3 april_fools_pranks 4
4 Date 2021-03-01
4 <weird-symbols_ar_ok!> 1
4 a-third-key 1
4 this_has_occured_three_times 3
4 this_twice 2
4 key 1
4 another_key 1
5 Date 2021-04-02
运行 cat data.txt | kvc-df
(或 < data.txt kvc-df
)产生
index april_fools_pranks this_twice a <weird-symbols_ar_ok!> event Date a-third-key key this_has_occured_three_times another_key
1 0 0 1 0 0 0 0 0 0 0
2 0 0 0 0 2 0 0 0 0 0
3 4 0 0 0 0 2021-04-01 0 0 0 0
4 0 2 0 1 0 2021-03-01 1 1 3 1
5 0 0 0 0 0 2021-04-02 0 0 0 0
好的,我实际上已经对齐了文本,并使用以下命令生成了索引:cat data.txt | kvc-df -i | column -t
我使用这个来保存事件日志,并可以轻松地在其他程序或数据库中进行分析。
依赖项
约2.8-4MB
约60K SLoC