3 억 1,500 만 개가 넘는 행과 하나의 열을 포함하는 큰 CSV 파일이 있습니다. 결과를 얻으려면 한 번에 50 개 이상의 파일을 처리해야합니다.파이썬에서 대형 csv 파일 처리
csv 리더기를 사용하여 10 개가 넘는 데이터를 읽었을 때 12GB 이상의 RAM이 필요하고 매우 느립니다. 메모리를 절약하기 위해 파일의 덩어리 만 읽을 수 있지만 파일을 읽을 때마다 더 많은 시간을 할애하여 매번 전체 파일을 읽습니다.
데이터베이스에로드하고 거기에서 데이터를 쿼리하는 방법에 대해 생각해 보았습니다. 그러나이 방법이 어떤 식 으로든 도움이 될지 확신 할 수 없습니다. 누구든지 Python에서 이러한 시나리오를 처리하는 가장 효율적인 방법을 알려주시겠습니까? 당신은 더 이상 처리 파이프 라인이있는 경우
수행중인 조작 유형에 따라 다릅니다. 데이터베이스는 하나의 옵션이고, EC2는 다른 것이며, CLI는 세 번째이지만,이 모든 것은 당신이하는 일에 달려 있습니다. –
값을 가져 와서 간단한 곱셈과 덧셈 옵션을 수행하고 결과를 저장 한 다음 파일의 다음 청크로 이동합니다. –
문제점이 구체적이지 않습니다. 파일이 서로 어떻게 관련이 있습니까? 순차적으로 처리하는 것이 아니라 병렬 처리해야하는 이유는 무엇입니까? 계산을 수행하기 위해 한 번에 몇 개의 메모리가 필요합니까? 예를 들어, 누적 합계는 한 번에 한 행만 필요합니다. –