Batch Data Splitter
Documentsbatch_data_splitterBatch Data Splitter is an Agent Skill for documents published in the cas-bigdatalab/piflow repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
批量数据均匀分片工具。读取json/jsonl/csv输入,按份数或固定条数切成多个子文件,输出一个清单JSON供下游节点消费。 当用户提到数据分割、批量拆分、数据分片、均匀分块等需求时使用此skill。 即使用户没有明确说出"分片",只要任务是把整份批量数据均匀拆成多个文件,就应该使用此skill。 不负责按字段分组导出或随机采样。
QUICK START
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/cas-bigdatalab/piflow/blob/HEAD/workspace/skills/batch_data_splitter/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/batch-data-splitter, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
Batch Data Splitter 批量数据均匀分割 Skill
功能概述
本skill面向大容量批量数据集进行均等分割,可设定分割份数或单份样本容量,将整体数据集均匀划分为多组子数据集。 无差别平均分配原始样本,保持各组数据分布一致性,适配流水线分批运算、多任务并行处理、数据分库存储等业务场景。
触发条件
当用户请求以下任务时,应使用此skill:
- 批量拆分
- 数据分片
- 均匀划分
- 按份数切块
- 按固定条数切块
核心参数说明
必需参数
--input:输入文件路径--output_dir:输出清单文件路径(JSON),实际分割文件写入同名_splits/子目录
可选参数
--num_splits:分割份数,默认 0(0 表示按 chunk_size 分割)--chunk_size:每份样本数量,默认 1000--output_prefix:输出文件名前缀,默认split--shuffle:是否打乱顺序,默认 false--random_seed:随机种子,默认 42
输入文件格式
支持 json、jsonl、csv。
使用方法
按份数分割
python scripts/run_batch_data_splitter.py \
--input corpus.csv \
--output_dir ./splits_manifest.json \
--num_splits 10
按每份数量分割
python scripts/run_batch_data_splitter.py \
--input corpus.csv \
--output_dir ./splits_manifest.json \
--chunk_size 5000
打乱后分割
python scripts/run_batch_data_splitter.py \
--input corpus.csv \
--output_dir ./splits_manifest.json \
--num_splits 5 \
--shuffle true
输出示例
[OK] Batch data splitting completed!
Input file: corpus.csv
Total samples: 11
Number of splits: 4
Samples per split: [3, 3, 3, 2]
Manifest file: ./splits_manifest.json
Splits directory: ./splits_manifest_splits
Output files:
- split_001.csv (3 samples)
- split_002.csv (3 samples)
- split_003.csv (3 samples)
- split_004.csv (2 samples)
环境要求
- Python 3.x
- 标准库即可运行
注意事项
- 如果总数不能整除,最后一份可能样本数较少。
num_splits优先级高于chunk_size。- 当
num_splits大于总样本数时,会自动收敛为最多生成total_count份。 - 输出文件名格式:
{prefix}_{序号}.{扩展名}。 --output_dir指定的是清单 JSON 文件路径,实际分割文件写入同名_splits/子目录,是引擎下游节点可消费的单文件输出。- 这里只做均匀分片,不做比例拆分或分层保持。