JSONL 병합기
여러 JSONL(JSON Lines) 파일을 단일 파일로 결합합니다. 줄 순서 변경, 중복 제거, 검증 기능을 제공합니다. 100% 클라이언트 측 처리, 데이터는 브라우저를 떠나지 않습니다.
입력 파일
.jsonl 파일을 여기에 드롭하거나 클릭하여 여러 파일 선택
.jsonl, .ndjson, .json, .txt 지원
병합 옵션
입력 파일
.jsonl 파일을 여기에 드롭하거나 클릭하여 여러 파일 선택
.jsonl, .ndjson, .json, .txt 지원
병합 옵션
병합된 출력
병합할 JSONL 파일을 드롭하거나 선택하세요
cat file1.jsonl file2.jsonl이 데이터를 손상시킬 수 있는 이유
이어 붙이기는 JSONL을 병합하는 가장 당연한 방법처럼 보이며, 실제로 한 파일에 마지막 줄바꿈이 없기 전까지는 잘 작동합니다. 마지막 줄바꿈이 없으면 한 파일의 마지막 레코드와 다음 파일의 첫 레코드가 하나의 유효하지 않은 줄로 합쳐집니다.
# file1.jsonl이 마지막 줄바꿈 없이 끝남:{"id": 1}{"id": 2}⏎missing# file2.jsonl:{"id": 3}# cat file1.jsonl file2.jsonl의 결과:{"id": 1}{"id": 2}{"id": 3} ← one broken line: parse error, two records lost
이 도구는 모든 입력의 마지막 바이트를 확인하고 이어 붙이기 전에 누락된 줄바꿈을 삽입합니다. 따라서 입력 파일이 어떤 방식으로 저장되었든 병합된 출력은 항상 유효합니다. 파이프라인에서 cat을 사용해야 한다면 안전한 형식은 awk 1 file1.jsonl file2.jsonl입니다(awk가 모든 줄의 끝에 줄바꿈을 다시 추가합니다).
JSONL 파일 병합 방법
여러 JSONL 파일을 업로드 영역에 선택하거나 드래그 앤 드롭하세요. 각 파일은 브라우저에서 완전히 읽히며 서버로 전송되는 데이터가 없습니다. .jsonl, .ndjson, .json 또는 .txt 형식의 파일을 사용할 수 있습니다.
업로드 후 위/아래 화살표를 사용하여 파일 순서를 변경하여 병합 순서를 제어할 수 있습니다. 전체 콘텐츠 기반으로 중복 줄을 제거하려면 중복 제거를 활성화하거나, 유효하지 않은 JSON 줄을 건너뛰려면 JSON 검증을 활성화하세요.
병합된 출력은 처음 100줄을 보여주는 미리보기 패널에 표시됩니다. 전체 병합된 파일을 .jsonl 파일로 다운로드하거나 클립보드에 복사할 수 있습니다. 통계에는 총 줄 수, 파일 크기, 제거된 중복 항목 또는 유효하지 않은 줄이 표시됩니다.
정확한 병합 동작
- 순서
- 파일은 추가한 순서대로 이어 붙여지며, 각 파일 안의 레코드 순서도 유지됩니다. 병합은 추가 전용입니다. 레코드를 재정렬하거나 다시 쓰거나 재포맷하지 않습니다.
- 경계 복구
- 입력 파일 끝에 마지막 줄바꿈이 없으면 자동으로 추가합니다(위 예시 참조). 일부 소비자가 빈 줄을 거부하므로 레코드 사이의 빈 줄은 제거합니다.
- 중복 제거: 줄 단위 완전 일치
- 선택 사항입니다. 원시 줄이 바이트 단위로 완전히 같을 때만 두 레코드를 중복으로 간주합니다. {"a":1,"b":2}와 {"b":2,"a":1}은 JSON 값이 같더라도 키 순서 때문에 줄이 다르므로 중복 제거되지 않습니다. 값 수준의 중복 제거가 필요하다면 먼저 포맷터의 키 정렬 옵션으로 정규화하세요.
- 분할 도구와의 왕복 처리
- 병합은 분할의 정확한 역연산입니다. 파일을 N개의 청크로 분할한 뒤 순서대로 다시 병합하면 결과는 원본과 바이트 단위로 동일합니다(중복 제거를 끈 경우). 이 특성 덕분에 분할 → 병렬 처리 → 병합을 안전한 파이프라인 패턴으로 사용할 수 있습니다.
JSONL 병합이란?
JSONL 병합은 여러 JSONL(JSON Lines) 파일을 단일 파일로 결합하는 과정입니다. 각 입력 파일에는 줄당 하나의 JSON 객체가 포함되어 있으며, 병합기는 지정한 순서를 유지하면서 모든 파일의 모든 줄을 하나의 출력 파일로 연결합니다.
여러 파일에 걸쳐 분할된 데이터셋(훈련 데이터 샤드, 일별 로그 내보내기, 청크된 API 응답 등)을 작업할 때 필수적입니다. 병합은 단일 JSONL 입력을 기대하는 플랫폼에 업로드하거나 더 쉬운 처리 및 분석을 위해 이들을 단일 파일로 통합합니다.
일반적인 오류 및 해결 방법
파일 간 중복 레코드
겹치는 JSONL 내보내기(예: 겹치는 타임스탬프가 있는 일별 로그)를 병합할 때 중복이 발생할 수 있습니다. '중복 제거' 옵션을 활성화하면 정확한 줄 내용을 기반으로 자동 중복 제거합니다. 의미적 중복 제거(동일 데이터, 다른 포맷)가 필요한 경우 먼저 JSONL 포맷터를 사용하여 모든 파일을 일관되게 포맷하세요.
파일 간 혼합 인코딩
다른 소스의 파일은 다른 문자 인코딩(UTF-8, UTF-8 BOM 포함, Windows-1252)을 사용할 수 있습니다. 이로 인해 일부 파일의 첫 번째 줄이 JSON 파싱에 실패할 수 있습니다. 병합 전에 모든 파일이 BOM 없이 UTF-8로 저장되었는지 확인하세요.
파일 간 일관되지 않은 스키마
다른 소스의 JSONL 파일은 다른 키 구조를 가질 수 있습니다. 병합기는 스키마 차이와 관계없이 파일을 결합하지만, 다운스트림 도구는 일관된 스키마를 기대할 수 있습니다. JSONL 검증기를 사용하여 병합된 출력의 각 줄이 유효한 JSON인지 확인하세요.
일반적인 사용 사례
데이터셋 통합
여러 JSONL 훈련 데이터 샤드를 OpenAI 파인튜닝, Hugging Face 또는 기타 ML 플랫폼에 업로드하기 위한 단일 파일로 결합합니다.
데이터 파이프라인 조립
병렬 데이터 처리 파이프라인의 출력 파일을 다운스트림 소비를 위한 단일 JSONL 파일로 병합합니다.
ML 훈련 데이터 준비
여러 소스의 프롬프트-완성 쌍을 모델 파인튜닝을 위한 하나의 JSONL 파일로 통합합니다.
로그 파일 집계
일별 또는 시간별 JSONL 로그 내보내기를 포괄적인 로그 분석 및 검색을 위한 단일 파일로 결합합니다.
팀 협업
다른 팀 멤버가 기여한 JSONL 데이터 파일을 공유 분석을 위한 통합 데이터셋으로 병합합니다.
분석 데이터 병합
여러 서비스 또는 기간의 JSONL 이벤트 데이터를 통합 분석 및 보고를 위해 결합합니다.
자주 묻는 질문
이 JSONL 병합기는 파일을 어떻게 결합하나요?
네. 모든 병합은 브라우저에서 로컬로 이루어집니다. 파일 데이터가 서버에 업로드되지 않습니다. JSONL 파일은 기기를 떠나지 않습니다.
이 JSONL 병합기로 중복 줄을 제거할 수 있나요?
파일 수에 엄격한 제한은 없습니다. 필요한 만큼 JSONL 파일을 추가할 수 있습니다. 그러나 모든 파일이 브라우저 메모리에 로드되므로 매우 큰 결합 데이터셋(수백 MB)은 기기에 따라 느려질 수 있습니다.
이 JSONL 병합기가 내 데이터를 업로드하나요?
중복 제거는 각 줄의 전체 트리밍된 콘텐츠를 비교합니다. 두 줄이 동일한 경우(같은 문자, 같은 순서) 두 번째 발생이 제거됩니다. 이는 정확한 일치 중복 제거이며, 동일한 데이터지만 다른 키 순서나 공백이 있는 줄은 다른 것으로 처리됩니다.
이 도구로 NDJSON 파일을 병합할 수 있나요?
네. 업로드 후 각 파일 옆의 위아래 화살표 버튼을 사용하여 순서를 변경할 수 있습니다. 병합된 출력은 위에서 아래로 파일 순서를 따릅니다.
한 번에 몇 개의 파일을 병합할 수 있나요?
빈 줄과 공백만 있는 줄은 파일 읽기 중 자동으로 필터링됩니다. 병합된 출력에는 나타나지 않습니다. 이는 빈 줄이 무시되는 JSONL 사양을 따릅니다.
병합된 JSONL 파일을 다시 분할하려면 어떻게 하나요?
네. 병합기는 스키마 차이와 관계없이 파일을 결합합니다. 각 줄은 있는 그대로 유지됩니다. 스키마 일관성이 필요한 경우 병합 전에 파일을 개별적으로 검증하거나 변환하세요.
병합기가 원래 파일 순서를 유지하나요?
네. 각 파일 내의 줄은 원래 순서를 유지합니다. 파일은 파일 목록에 표시된 순서대로 연결됩니다. 병합 전에 파일 순서를 조정할 수 있습니다.
서로 다른 스키마의 파일을 병합할 수 있나요?
이 도구는 드래그 앤 드롭 업로드, 파일 순서 변경, 중복 제거, JSON 검증, 줄 수 통계, 즉시 미리보기가 포함된 시각적 인터페이스를 제공합니다. cat이나 copy 명령을 사용한 수동 연결과 달리 후행 줄바꿈과 빈 줄 같은 엣지 케이스를 자동으로 처리합니다.