我有大约 1.5 Gb 的文件,我想将文件分成块,以便我可以使用多处理来使用 python 中的 pp(parallel 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 字节的元组数据,并且 Multi 函数被称为并行 n 时间(这里 n 等于槽)来完成这项工作