4个版本
0.1.3 | 2024年3月3日 |
---|---|
0.1.2 | 2024年3月3日 |
0.1.1 | 2024年3月3日 |
0.1.0 | 2024年3月3日 |
#3 在 #快速
每月97次下载
140KB
154 行
RRRS:Rustic快速随机抽样器
欢迎使用RRRS,这是一个以性能和效率为核心设计的快速超优化CSV随机抽样工具。精心用Rust编写,RRRS提供了从CSV文件中快速提取随机数据样本的绝佳解决方案。
🤨 为什么选择RRRS
在圣路易斯华盛顿大学的学习期间,我经常遇到从庞大或巨大的CSV文件中抽样样本的繁琐、重复过程,于是诞生了RRRS(Rustic快速随机抽样器)。它不仅仅是一个工具,更是一次略显多余但有趣的使命——过度优化并加速数据抽样的常见烦恼。作为一名在数据密集型课程中航行的学生,我发现自己在导入大型数据集到电子表格软件、等待其加载以及使用插件或脚本提取所需样本的过程中效率低下。显然,必须有一种更好的方法。因此,我放弃做作业,而是着手开发这个工具
这就是RRRS。它利用Rust的速度和效率,是我对这些令人烦恼的几个小时的最佳回应。它旨在使从大型CSV文件中随机抽样的过程不仅更快,而且成为您工作流程中无缝的一部分。这个工具适用于任何曾经感到这种烦恼的人,将曾经是瓶颈的过程转变为流畅、高效的过程。有了RRRS,我很高兴分享一个帮助我的解决方案,现在它将支持数据爱好者和专业人士在他们的分析工作中。
🚀 功能
- 快速随机抽样:快速从大型CSV文件中提取随机样本。
- 超优化性能:利用Rust强大的系统级功能实现最大速度。
- 用户友好:简单的命令行界面,轻松指定输入和输出。
- 灵活性:可根据您的数据分析需求自定义随机抽样。
- 跨平台兼容性:在支持Rust的任何平台上无缝运行。
🛠 使用方法
要开始使用RRRS,请按照以下简单步骤操作
rrrs-i<输入文件路径> -o<输出文件路径>
执行时,RRRS 会提示您输入从 CSV 文件中随机抽取的行数。输出将是一个新的 CSV 文件,文件名保留原始文件名并添加表示抽样行数的后缀(例如,slogan_data-100
)。此文件将保存在执行路径或指定的输出目录中。
📂 目录结构
了解以下目录结构以理解 RRRS 的组织。
rrrs/
├── Cargo.toml # Project manifest
├── src/ # Source files
│ ├── main.rs # Entry point
│ ├── library.rs # Library code
│ ├── args.rs # Argument parsing
│ └── library/ # Library code
│ ├── sampler_ops/ # Sampling operations
│ │ ├── sampler_ops.rs # Sampling logic
│ └── csv_ops/ # CSV operations
│ ├── csv_loader.rs # CSV loading functionality
│ └── csv_writer.rs # CSV writing functionality
└── tests/ # Automated tests
├── args_tests.rs # Tests for argument parsing
├── csv_loader_tests.rs # Tests for CSV loading
├── sampler_tests.rs # Tests for sampling logic
└── csv_writer_tests.rs # Tests for CSV writing
📚 入门指南
MacOS 和 Linux
要使用 RRRS,您需要在您的计算机上安装 Rust。如果您还没有安装 Rust,可以使用以下命令进行安装: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. 有关更多信息,请参阅官方 Rust 安装指南 此处。
Rust 安装完成后,可以使用以下命令安装 RRRS:cargo install rrrs
。
Windows
注意:RRRS 目前不支持 Windows。但是,您仍然可以通过安装 Windows Subsystem for Linux 来使用它。
从源码构建
要从源码构建 RRRS,您可以克隆存储库并使用以下命令进行构建(注意,这主要用于开发目的)
git clone [email protected]:ethan-wickstrom/rrrs.git
cd rrrs
cargo build --release
cp target/release/rrrs /usr/local/bin
🤝 贡献
欢迎为 RRRS 做出贡献。您可以自由地打开一个 issue 或提交一个 pull request,无论是错误报告、功能请求还是代码贡献。有关详细信息,请参阅贡献指南。
📝 许可证
RRRS 在 Apache-2.0 许可证下开源。有关详细信息,请参阅 LICENSE 文件。
依赖关系
~41–71MB
~1.5M SLoC