문제점을 해결하려고합니다. 이것에 대한 귀중한 의견을 보내 주시면 감사하겠습니다.많은 파일이있는 다중 처리
문제 설명 : 동일한 기본 디렉토리에서 많은 파일 (10 ** 6)을 읽으려고합니다. 각 파일 패턴 (YYYY-MM-DD-HH)에 일치하는 이름을 가지고 있으며, mm
는 하루 vv
의 분입니다
mm1, vv1
mm2, vv2
mm3, vv3
.
.
.
을 다음과 같이 파일의 내용은 "일부 숫자 값입니다 그 분과 관련해서. 시작 시간 (예 : 2010-09-22-00)과 종료 시간 (예 : 2017-09-21-23)을 모두 얻으려면 vv
의 평균을 찾아야합니다.
기본적으로 사용자는 start_date
과 end_date
을 제공 할 것이고, 주어진 기간 사이의 모든 파일의 평균을 얻어야 할 것입니다. 그래서 내 기능은 다음과 같이 될 것이다 : 나는 작은 조각을 평균하는 멀티 프로세싱을 사용하는 방법을
get_average(start_time, end_time, file_root_directory):
지금, 내가 이해하고 싶은 것은 다음 최종 값을 얻기 위해 그 위에 구축 할 수 있습니다.
참고 : 선형 솔루션을 찾고 있지 않습니다. 작은 덩어리로 어떻게 문제를 풀었는지에 대한 조언을 한 다음 평균을 찾기 위해 그것을 요약하십시오. 파이썬에서 multiprocessing
모듈을 사용하여 4 개의 프로세스 풀을 만들려고 시도했지만 메모리에 값을 유지하고 모든 청크에 대해 결과를 함께 추가하는 방법을 알 수 없습니다.
매우 광범위하다는 것 외에도 정확하게 알고 싶은 것이 분명하지 않습니다. 즉, 프로세스간에 통신하는 일반적인 (매우 공통적 인) 방법 중 하나는 하나 이상의 '다중 처리 .Queue'객체를 사용하는 것입니다. – martineau
글쎄요, 나는이 성명서가 광범위하다는 데 동의하며, 사실 하나의 파일 시스템이 단일 디렉토리에서 10^6 파일을 처리 할 수 없다는 것에 동의합니다. 그게 내 주요 목표는 여기에 프로토 타입을 구축하는 것입니다 – Geek