104 개의 필드가있는 CSV 파일이 있지만, mysql 데이터베이스에서 사용할 필드가 4 개만 있으면됩니다. 각 파일에는 약 백만 개의 행이 있습니다. 누군가가이 작업을 효율적으로 수행 할 수 있습니까? 각 줄을 배열로 읽는 것은 오랜 시간이 걸린다. 감사합니다.많은 수의 필드가있는 csv 파일 읽기
1
A
답변
0
모든 행을 전체적으로 읽어야합니다. 이것은 다음 레코드 (즉, 개행 문자)에 대한 구분 기호를 찾는 데 필요합니다. 읽지 않은 데이터는 버려두기 만하면됩니다. 예컨대는 :
$data = array();
$fh = fopen('data.csv', 'r');
$headers = fgetcsv($fh);
while ($row = fgetcsv($fh)) {
$row = array_combine($headers, $row);
$data[] = array_intersect_key($row, array_flip(array('foo', 'bar', 'baz')));
// alternatively, if you know the column index, something like:
// $data[] = array($row[1], $row[45], $row[60]);
}
이 단지 는 열 푸, 바, 바즈을 유지하고 나머지는 버립니다. 파일 (fgetcsv
)에서 읽는 은 대략 최대한 빨리 나타납니다. 더 빨리 처리해야하는 경우에는 임시로 메모리에 저장하지 않고도 필요없는 열을 건너 뛰는 고유 한 CSV 토크 나이저 및 구문 분석기를 구현해야합니다. 이 버그를 무료로 구현하는 데 필요한 개발 시간 대 성능 향상의 정도는 매우 논쟁의 여지가 있습니다.
간단한 엑셀 매크로는 불필요한 모든 열 (104 중에서 100) 초를 버릴 수 있습니다. 나는 비슷한 해결책을 찾고있다. Excel에서 한 번 파일이 열려 있기 때문이다
는 메모리에서 모든 데이터가 매우 신속하게 행동 할 수 있습니다. 정확한 비교를 위해 Excel에서 파일을 열 때 + 열을 삭제하는 데 걸리는 시간을 비교해야합니다. 이 아니라 단지이 열을 삭제합니다.
관련 문제
- 1. 파이썬에서 많은 수의 파일 열기 및 읽기
- 2. VBScript를 사용하여 CSV 파일 읽기
- 3. SSRS로 CSV 파일 읽기
- 4. 빈 필드가있는 Excel 파일 읽기
- 5. 여러 필드가있는 java 파일 읽기
- 6. Java 파일에서 많은 수의 BitSet 객체 읽기
- 7. csv 파일 읽기 문제.
- 8. 특정 문자 수의 파일 읽기
- 9. 많은 수의 XML 파일 인덱싱
- 10. 많은 수의 텍스트 파일 편집
- 11. 많은 수의 작은 파일 다운로드
- 12. 어떻게 grep 많은 수의 파일?
- 13. 많은 수의 HDF5 파일 연결하기
- 14. 배열로 csv 파일 읽기
- 15. 거대한 .csv 파일 읽기
- 16. C 읽기 CSV 파일
- 17. JSP에서 CSV 파일 읽기
- 18. ASP의 CSV 파일 읽기
- 19. 읽기 CSV 파일
- 20. Java에서 CSV 파일 읽기
- 21. CSV 파일 읽기
- 22. csv 파일 읽기 ios
- 23. JavaScript에서 CSV 파일 읽기
- 24. 오류 파일 읽기 CSV
- 25. 파이썬에서 csv 파일 읽기
- 26. 읽기 csv 파일
- 27. 읽기 csv 파일 AppleScript로
- 28. CSV 파일 읽기 오류
- 29. C# 파문이있는 필드가있는 인용문이있는 CSV 파일
- 30. 카프카에서 많은 파일 읽기
fgets로 파일을 읽는 것이 더 빠르지 않습니까? 그렇게하면 한 번에 하나의 라인 만 메모리로 읽어 들일 수 있습니다. 얼마나 빨라지는지 확신 할 수 없으므로 답으로 쓰고 싶지는 않습니다.하지만 시도해 볼 가치가 있습니다. 그렇지 않으면, 나는 PHP와 함께하지 말라고 말하고 싶지만 - bash 스크립트 나 유사한 것을 사용하여 파일을 빨리 통과 한 다음 php를 사용하여 데이터베이스에 해당 값을 저장하십시오. –
일부 스크립팅이 좋을 것입니다. 그걸 할 단계를 말해 줄 수 있어요? – user1605904
가장 간단한 형태로, sed와 정규 표현식을 사용할 수 있습니다 :'sed s/expression/replacement/flags myfile.csv> newfile.csv' –