JSONL スプリッター
大きなJSONL(JSON Lines)ファイルを行数やファイルサイズで小さなチャンクに分割。100%クライアントサイド、データはブラウザから外に出ません。
入力 JSONL
.jsonl ファイルをここにドロップ、またはクリックして参照
.jsonl, .ndjson, .json, .txt に対応
分割オプション
入力 JSONL
.jsonl ファイルをここにドロップ、またはクリックして参照
.jsonl, .ndjson, .json, .txt に対応
分割オプション
分割結果
JSONLコンテンツを貼り付けまたはドロップし、オプションを設定して分割
JSONL ファイルの分割方法
大きなJSONLファイルをアップロードするか、入力エリアにコンテンツを貼り付けます。ツールは任意のサイズの.jsonl、.ndjson、.json、.txtファイルを受け付けます。
分割方法を選択します:行数(例:1ファイルあたり1000行)またはファイルサイズ(例:1ファイルあたり10 MB)。スプリッターは各行を独立して処理し、すべてのJSONレコードの整合性を保持します。
分割後、各パートを個別にダウンロードするか、「ZIPで一括ダウンロード」を使用してすべてのパートを1つのアーカイブで取得できます。各出力ファイルはすぐに使用できる有効なJSONLファイルです。
行数またはサイズで分割 — 単純な split -b では不十分な理由
JSONL 分割ツールの最大の価値は、レコードを途中で切断しないという保証です。一般的なバイト単位の分割では保証できません。3 つの方法を比較します。
| 方法 | 保証 | 適したケース |
|---|---|---|
| 行数で分割(このツール) | 各チャンクに正確に N 件の完全なレコードが含まれる | レコード単位で課金または制限される利用側 — API バッチ、テストサンプル |
| 目標サイズを指定し、行境界で分割(このツール) | サイズ上限に近いチャンクとなり、改行位置だけが境界になる | MB 単位のアップロード制限 — 各パートが有効な JSONL のままになる |
| 未加工のバイト単位で分割 — split -b 100M | 保証なし。ほぼ確実にレコードのバイト列を途中で切断する | JSONL には使用しない。通常、先頭以外の各チャンクがレコードの途中から始まる |
OpenAI Batch API 向けのチャンクサイズ設定
2026 年時点の代表的な分割処理として、OpenAI の Batch API ではバッチ入力ファイルが 50,000 リクエストかつ 200 MB までに制限されます。両方の制限を同時に満たす必要があるため、実際のデータからチャンクサイズを計算します。
# ファイルを計測するwc -l batch_input.jsonl # → e.g. 120,000 requestsdu -m batch_input.jsonl # → e.g. 310 MB# チャンクあたりの行数 = floor(min(50000, 120000 × 200/310))# = floor(min(50000, 77419)) = 50000 → ただしサイズを確認:# 50000 行 ≈ 129 MB ✓ 200 MB 未満 — したがって 50,000 行で分割split -l 50000 batch_input.jsonl part_# 結果:part_aa, part_ab, part_ac — 3 つの有効なバッチファイル
同じ計算は、行数と MB 数の両方に制限がある任意の出力先に適用できます。ブラウザツールでは、チャンクあたりの行数を設定すると、ダウンロード前に各チャンクの生成後サイズが表示されるため、手計算は不要です。
JSONL分割とは?
JSONL分割は、大きなJSONL(JSON Lines)ファイルを複数の小さなファイルに分割するプロセスです。各ファイルには元のレコードのサブセットが含まれます。JSONLファイルのすべての行は独立したJSONオブジェクトであるため、分割は簡単でレコードを壊すことはありません。
アップロードサイズ制限のある機械学習プラットフォーム、リクエスト数の上限があるBatch API、小さな入力ファイルでパフォーマンスが向上するデータパイプラインを使用する場合に不可欠です。分割により、コンテンツを変更することなく管理しやすいチャンクでデータを処理できます。
一般的な使用例
OpenAI Batch API の制限対応
大きなJSONLファイルをOpenAI Batch APIのサイズ制限(ファイルあたり100 MB、バッチあたり50,000リクエスト)に合わせて分割。
MLトレーニングデータの分割
大きなトレーニングデータセットをtrain/validation/testに分割、または分散トレーニング用に均等サイズのチャンクに分割。
並列処理
JSONLファイルをチャンクに分割し、複数のワーカー、スレッド、サーバーレス関数で並列処理。
アップロードサイズ制限への対応
大きなJSONLエクスポートをプラットフォームのアップロード制限(AWS S3マルチパート、GitHub、メール添付)に合うサイズに分割。
インクリメンタルデータロード
大きなデータセットを小さなバッチに分割し、タイムアウトを回避してデータベースやデータウェアハウスにインクリメンタルにロード。
バージョン管理に適した分割
巨大なJSONLデータファイルを小さなパートに分割し、Gitバージョン管理での大容量ファイル警告を回避しdiff可読性を向上。
よくあるエラーと解決策
分割で空のファイルが生成される
ファイルあたりの行数が総行数より大きい場合に発生します。ファイルあたりの行数を減らすか、サイズベースの分割を使用してください。
サイズベース分割で不均等なパートが生成される
サイズで分割する場合、行がレコードの途中で分割されることはないため、最後のパートはターゲットサイズより小さくなる場合があります。各ファイルには完全なJSON行のみが含まれることが保証されます。
非常に大きなファイルでブラウザが遅くなる
500 MBを超えるファイルの場合、処理中にブラウザが遅くなる場合があります。非常に大きなデータセットの場合は、コマンドラインツール「split」や「wc -l」の使用を検討し、このツールで検証してください。
よくある質問
この JSONL スプリッターはどのようにファイルを分割しますか?
はい。すべての分割はJavaScriptを使用してブラウザ内でローカルに行われます。データがサーバーに送信されることはありません。JSONLコンテンツがデバイスから外に出ることはありません。
行数ではなくファイルサイズ(MB)で JSONL を分割できますか?
厳密な制限はありません。スプリッターは数百MBのファイルを処理できます。パフォーマンスはブラウザとデバイスのメモリに依存します。
この JSONL スプリッターはデータをアップロードしますか?
はい。レコードは順次分割されます。最初のファイルには最初のN行、2番目のファイルには次のN行が含まれます。レコードの並べ替えや重複はありません。
出力チャンクファイルの名前はどのようになりますか?
現在、一度に1つの分割モードを選択できます。両方の制約が必要な場合は、より制約の厳しい方で先に分割し、結果ファイルが両方の要件を満たすことを確認してください。
このツールで NDJSON ファイルを分割できますか?
空行は分割中に保持されます。JSONLファイルのレコード間に空行がある場合、出力ファイルの元の位置に表示されます。必要に応じて、分割前にJSONL Validatorで空行をクリーンアップしてください。
分割した JSONL ファイルを再結合するにはどうすればよいですか?
はい。各分割ファイルは有効なJSONLファイルなので、連結して元のファイルを再構成できます。コマンドラインでは「cat part_*.jsonl > merged.jsonl」を使用します。JSONLツールを使用してファイルを結合することもできます。
入力ファイルの最大サイズはありますか?
分割ファイルには連番のパート番号が付けられます(例:part_001.jsonl、part_002.jsonl)。ZIPでダウンロードする場合、すべてのパートが1つのアーカイブに含まれます。
分割で元の行順序は保持されますか?
サイズベースの分割は、ターゲットサイズの閾値に達するまで行を蓄積します。現在のファイルが閉じられ、次の行で新しいファイルが始まります。行がファイル間で分割されることはないため、各パートはターゲットサイズを少し上回ったり下回ったりする場合があります。