대용량 CSV 파일 분할
말할 필요도 없이 내가 말한 파일을 여는 데 문제가 있었습니다. Excel, VS Code, 심지어 나의 오래된 충실한 Sublime Text에서도 작동하고 싶지 않았습니다!!
그래서 다른 경로로 이동하여 파일을 관리하기 쉬운 청크로 분할하기로 결정했습니다. 이를 위해 터미널을 사용하고 다음 작업을 수행합니다.
.csv
확장자를 추가합니다. 따라서 시작하려면 최선의 선택을 해야 합니다. 파일을 100MB 청크로 분할하는 것으로 시작했습니다. 두 번째 줄에서는 루프와 mv 명령을 사용하여 파일 확장자를 간단히 변경합니다.
이 명령을 실행하여 첫 번째 명령을 열고 파일에 몇 개의 행이 있는지 확인할 수 있습니다.
참고: 올바른 폴더로 이동했는지 확인하여 파일이 저장된 폴더를 찾습니다. 그런 다음 다음 스니펫을 실행합니다.
split -b 100m file_to_split.csv
for i in *; do mv "$i" "$i.csv"; done
이제 파일이 100MB 덩어리로 분할되지만 아직 끝나지 않았습니다. 나중에 CSV를 데이터베이스로 가져올 계획이라면 좋지 않은 행이 있을 가능성이 높습니다. 그래서 우리는 생성된 첫 번째 파일을 열고 몇 줄인지 확인합니다.
제 경우에는 415156이 있었습니다. 하지만 마지막 행이 깨졌습니다. 따라서 이것을 정렬하려면 생성된 모든 파일을 삭제합니다. - 이 방법이 가장 쉬운 방법을 찾았지만 그 이유가 있습니다.
이제 파일당 예상할 수 있는 행 수를 알고 있으므로 이번에는 파일 크기를 줄 수로 교체하여 이전 스니펫을 다시 실행할 수 있습니다.
split -l 415000 file_to_split.csv
for i in *; do mv "$i" "$i.csv"; done
요약하자면, split 명령에
-b
플래그를 사용했는데 이는 파일을 더 작은 청크로 분할할 수 있음을 의미합니다. 파일을 1MB의 파일로 분할하려는 경우 1m를 사용하는 것이 쉽습니다. 그러나 -l
플래그는 내 경우에는 파일을 분할하기 전에 원하는 데이터 행 수를 415000으로 분할 명령에 알려줍니다.원래 게시됨r3id.dev
Reference
이 문제에 관하여(대용량 CSV 파일 분할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/r3id/splitting-large-csv-files-2306텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)