파일이 약 1.5GB이고 파이썬으로 pp (병렬 파이썬) 모듈을 사용하여 각 청크를 처리하기 위해 다중 처리를 사용할 수 있도록 파일을 청크로 나누고 싶습니다. 지금까지 나는 파이썬에서 f.seek를 사용했지만 바이트로 바이트를 증가시킬 수 있기 때문에 많은 시간이 걸린다. 대체 방법은 무엇 일 수 있는가? 파이썬의 mrjob (map-reduce 패키지)을 통해이 작업을 수행 할 수 있습니까?다중 처리를 위해 파일을 청크로 나누는 방법
샘플 코드 :이
def multi(i,slots,,file_name,date):
f1=open(date+'/'+file_name,"rb")
f1.seek(i*slots*69)
data=f1.read(69)
counter=0
print 'process',i
while counter<slots:
##do some processing
counter+=1
data=f1.read(69)
처럼 내가 뭐하는 거지 뭔가 내 각 행은 69 바이트를 tupple 데이터를 포함하고 멀티 기능은 N 시간 평행라고합니다 (여기서 n은 슬롯과 동일) 작업을 할
1Gb 파일이 여러 개인 경우 각 스레드가 이러한 파일을 처리하도록 할 수 있습니다. 어쩌면이 파일들을 청크로 나눌 필요가 없을까요? –
아니요 1 파일 만 처리해야하는 경우 청크로 나누어야합니다. –
여러 파일이 있다는 사실은 사용자의 질문과 관련이 없습니다. "1GB 정도의 파일이 있습니다."등 –