我有大約1.5 Gb的文件,我想將文件分成塊,以便我可以使用多處理來處理每個塊使用python中的pp(並行python)模塊。直到現在我已經在python中使用了f.seek,但是它需要很多時間,因爲它可能會逐字節地增加字節數。所以可以採用哪種替代方法? 我可以通過python的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個字節的元組數據和多功能的平行稱爲n倍(這裏n等於槽)來完成這項工作
如果你有幾個1Gb文件,你可以讓每個線程處理一個這樣的文件。也許沒有必要將這些文件分成塊? –
沒有,如果我必須處理只有一個文件,我必須把它分成塊 –
好吧,那麼你有幾個文件的事實是不相關的在你的問題。我建議編輯你的文章,以便它開始於:「我有一個大約1 GB的文件...」等 –