Skip to content
Back to skills

Batch Data Splitter

ASecurity

批量数据均匀分片工具。读取json/jsonl/csv输入,按份数或固定条数切成多个子文件,输出一个清单JSON供下游节点消费。 当用户提到数据分割、批量拆分、数据分片、均匀分块等需求时使用此skill。 即使用户没有明确说出"分片",只要任务是把整份批量数据均匀拆成多个文件,就应该使用此skill。 不负责按字段分组导出或随机采样。

  • 539 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
toolspythonbash

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 11, 2026

npx -y skills add cas-bigdatalab/piflow --skill batch_data_splitter --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Batch Data Splitter?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Batch Data Splitter
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cas-bigdatalab-batch-data-splitter/badge)](https://www.skillsdirectory.com/skills/cas-bigdatalab-batch-data-splitter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: batch_data_splitter
description: |
  批量数据均匀分片工具。读取json/jsonl/csv输入,按份数或固定条数切成多个子文件,输出一个清单JSON供下游节点消费。
  当用户提到数据分割、批量拆分、数据分片、均匀分块等需求时使用此skill。
  即使用户没有明确说出"分片",只要任务是把整份批量数据均匀拆成多个文件,就应该使用此skill。
  不负责按字段分组导出或随机采样。

name_zh: 批量数据均匀分割算子
input_params:
  - name: input
    type: string
    required: true
    description: 输入文件路径(支持json/jsonl/csv)

  - name: output_dir
    type: string
    required: true
    description: 分割结果输出目录路径

  - name: num_splits
    type: string
    required: false
    default: "0"
    description: 分割份数(0表示按chunk_size分割)

  - name: chunk_size
    type: string
    required: false
    default: "1000"
    description: 每份样本数量

  - name: output_prefix
    type: string
    required: false
    default: split
    description: 输出文件名前缀

  - name: shuffle
    type: string
    required: false
    default: "False"
    description: 是否打乱顺序后分割

  - name: random_seed
    type: string
    required: false
    default: "42"
    description: 随机种子(shuffle时使用)

output_params:
  - name: output_dir
    type: file
    default: output_manifest.json
    description: 分割结果清单文件路径(JSON,含 splits_dir/output_files/total_count/actual_num_splits/samples_per_split)

tag: 数据筛选
publisher: COMMUNITY
---

# 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`。

## 使用方法

### 按份数分割
```bash
python scripts/run_batch_data_splitter.py \
  --input corpus.csv \
  --output_dir ./splits_manifest.json \
  --num_splits 10
```

### 按每份数量分割
```bash
python scripts/run_batch_data_splitter.py \
  --input corpus.csv \
  --output_dir ./splits_manifest.json \
  --chunk_size 5000
```

### 打乱后分割
```bash
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
- 标准库即可运行

## 注意事项

1. 如果总数不能整除,最后一份可能样本数较少。
2. `num_splits` 优先级高于 `chunk_size`。
3. 当 `num_splits` 大于总样本数时,会自动收敛为最多生成 `total_count` 份。
4. 输出文件名格式:`{prefix}_{序号}.{扩展名}`。
5. `--output_dir` 指定的是清单 JSON 文件路径,实际分割文件写入同名 `_splits/` 子目录,是引擎下游节点可消费的单文件输出。
6. 这里只做均匀分片,不做比例拆分或分层保持。

Files in this skill

  • SKILL.md4.2 KB
  • scripts/example_input.json147 B
  • scripts/run_batch_data_splitter.py9.1 KB
  • skill.json2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…