python多程序處理大資料

2021-09-30 01:52:31 字數 1651 閱讀 4455

主要用到multiprocessing庫,思想是將大資料讀入記憶體,然後切片儲存,然後多程序分別處理分片。

from multiprocessing import pool

import math

import os

# 讀取資料

path = os.path.join(os.getcwd(),

'test.txt'

)with

open

(path,

'r')

as f:

data = f.readlines(

)

processor=

4l_data =

len(data)

size = math.ceil(l_data / processor)

# 切分資料並儲存

for i in

range

(processor)

: start = size*i

end =

(i+1

)*size if

(i+1

)*size < l_data else l_data

filename =

'en_wiki_'

+str

(i)+

'.txt'

path = os.path.join(os.getcwd(

), filename)

with

open

(path,

'w')

as f:

for i in

range

(start, end)

: f.write(data[i]

)# 刪除讀入記憶體的大資料,高效利用記憶體

del data,l_data

# 處理資料

defproess

(path1, path2, pid)

:# do something

defrun

(i):

filename1 =

'en_wiki_piece_'

+str

(i)+

'.txt'

path1 = os.path.join(os.getcwd(

), filename1)

filename2 =

'processed_wiki_piece_'

+str

(i)+

'.txt'

path2 = os.path.join(os.getcwd(

), filename2)

process(path1, path2, i)

# 開啟多程序處理資料

p=pool(processor)

for i in

range

(processor)

:(i,))

print

(str

(i)+

' processor started !'

)

p.close(

)p.join(

)print

("process over!"

)

python多程序資料處理

使用python3.4 的import concurrent.futures def function json path key frame list with open json path as fr json data json.load fr json video filename vide...

python多程序處理

最近處理fmri資料時由於採用了的演算法需要隨機成千上萬次,因此所需的計算量相當大,單執行緒處理的話一般要一天,python原生是不支援多執行緒的,因此考慮採用python的多程序。其實編寫python多程序的程式還是比較簡單。下面實在自己的電腦上開啟了4程序。任務管理器裡面cpu顯示已經占用了10...

python多程序 python多程序

當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...