рдирдорд╕реНрдХрд╛рд░ рд╕рд╛рдерд┐рдпреЛрдВ!
рд╢рд╛рдпрдж рдЖрдЬ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рд╢реАрд░реНрд╖рдХ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ - рдпрд╣ рдХрд╣рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдЬ рд╣рдо рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдпрд╛рддреНрд░рд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ
рдбреИрд╕реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ
рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдПрдЧрд╛ , рдЬрд┐рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд▓реМрдЯрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред
рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдлреЛрдЯреЛрдбреАрд╕реНрдХ, рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛, рд╕рдмрд╕реЗ рдХреНрд░рд╛рдВрддрд┐рдХрд╛рд░реА рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреВрд▓ рд╣реИ рдЬреЛ рдореИрдВ рднрд░ рдореЗрдВ рдЖрдпрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк
рдкрдВрдбреЛрдВ рдФрд░ рдиреЗрдореНрдкреА рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдЖрдк рдЙрди рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬреЛ рд░реИрдо рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ Dask рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред Dask рдкрдВрдбреЛрдВ рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдФрд░ Numpy рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ (рд╕рд░рдгрд┐рдпреЛрдВ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред Dask рдХреЛ рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдпрд╛ рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдпрд╣ рдЪреБрдиреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдпрдерди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рдиреЛрдбреНрд╕ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕реНрд╡рдпрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдХреЗрд╡рд▓ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрдЯрд┐рд╕реНрдЯ (рдХрдо рд╕реЗ рдХрдо рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) Dask рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, Dask рдХрд╛ рдЬрд╛рджреВ рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдиреНрдпреВрдирддрдо рдХрд░рдХреЗ, рдЖрдк рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк рдкрд░ред рд╕рдорд╛рдирд╛рдВрддрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдкреНрд░реЛрдЧреНрд░рд╛рдо рддреЗрдЬреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХрдо рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдордп рдмрдЪрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо
dask.delayed
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╣ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдЯрд╛рд╕реНрдХ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдХреИрд╕реЗ рдлрд┐рдЯ рд╣реЛрдЧрд╛ред
рдкреЗрд╢ рд╣реИ рдбрд╕реНрдХ
Dask рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдиреАрдд рдФрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЕрдВрджрд╛рдЬрд╝рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд╖реНрдХрд░реНрд╖ рдЬреЛ рдореИрдВ рд╕реБрдЭрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдЬреНрдЮрд╛рди рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛; рдЖрдкрдХреЛ Hadoop рдпрд╛ Spark рдЬреИрд╕реЗ рдирдП рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдЯреВрд▓ рдХреЛ рдирд╣реАрдВ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред
Dask 3 рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд░реИрдо рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН: рдбреЗрдЯрд╛рдлреНрд░реЗрдо, рдмреИрдЧ рдФрд░ рдПрд░реЗред рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ, рдЖрдк рдЙрдиреНрд╣реЗрдВ рд░реИрдо рдФрд░ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдмреАрдЪ рд╕реЗрдЧрдореЗрдВрдЯ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрдИ рдиреЛрдбреНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Dask DataFrame рдореЗрдВ рд╢реНрд░реЗрдб рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкрдВрдбреЛрдВ рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЛ рдкрдВрдбреЛрдВ рдХреЗ рдХреНрд╡реЗрд░реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рд╣реИ рдЬреЛ 2018 рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрдВрдбрд┐рдд рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ:
import dask.dataframe as dd df = dd.read_csv('logs/2018-*.*.csv', parse_dates=['timestamp']) df.groupby(df.timestamp.dt.hour).value.mean().compute()
Dask рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдЙрджрд╛рд╣рд░рдгрдбрд╕реНрдХ рдмреИрдЧ рдореЗрдВ, рдЖрдк рдкрд╛рдЗрдереЛрдирд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдбрд╕реНрдХ рдмреИрдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд▓реЙрдЧ рдФрд░ json рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, 2018 рдХреЗ рд▓рд┐рдП рд╕рднреА json рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ Dask Bag рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ json рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ lambda рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
import dask.bag as db import json records = db.read_text('data/2018-*-*.json').map(json.loads) records.filter(lambda d: d['username'] == 'Aneesha').pluck('id').frequencies()
рдбрд╕реНрдХ рдмреИрдЧ рдЙрджрд╛рд╣рд░рдгDask Arrays рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ Numpy-рд╕реНрдЯрд╛рдЗрд▓ рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдЪрдбреАрдПрдл 5 рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЖрдпрд╛рдо рдХреЗ рдмреНрд▓реЙрдХ (5000, 5000) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
import h5py f = h5py.File('myhdf5file.hdf5') dset = f['/data/path'] import dask.array as da x = da.from_array(dset, chunks=(5000, 5000))
рдбрд╕реНрдХ рдЕрд░реНрд░реЗ рдЙрджрд╛рд╣рд░рдгDask рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
рдЗрд╕ рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рд╢реАрд░реНрд╖рдХ "рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЪрдХреНрд░ рдХреА рдореГрддреНрдпреБ" рд╣реЛрдЧрд╛ред рд╣рд░ рдЕрдм рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдЗрдирдкреБрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рдеред рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рд╕рдореБрдЪреНрдЪрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдПрдХрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдиреБрдХреНрд░рдорд┐рдХ рд▓реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, Dask рд╡рд┐рд▓рдВрдмрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдкрдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбреИрд╕реНрдХ рдбрд┐рд▓реЗрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрддрд╛рд░рдмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдереНрд░реЗрдбрд┐рдВрдЧ рдЗрдВрдЬрди рдХреЛ рд▓рд┐рдЦрдиреЗ рдпрд╛ asyncio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЖрд▓рд╕реА рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреЛ рддреБрд▓рдирд╛ рдХреЗ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛рдПред Dask рдХреЗ рд╕рд╛рде, рдЖрдк рди рддреЛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рди рд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╢реИрд▓реА рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ! рдЖрдкрдХреЛ рдмрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдпрд╛ рд░реИрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
@dask.delayed
рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд▓реВрдк рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЦреМрдЯрд╛ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдЧреНрд░рд╛рдл рдЙрджрд╛рд╣рд░рдг
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛
@dask.delayed
ред рддреАрди рдирдВрдмрд░реЛрдВ рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЪреБрдХрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рд╕рд╛рде рдЕрднрд┐рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Dask рдПрдХ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ
sum_list
рд╡рд┐рдзрд┐ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо
sum_list
рдкрджреНрдзрддрд┐ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛
sum_list
рд╣реИред рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЧреНрд░рд╛рдл рдХреЛ
calling .visualize()
рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Calling .compute()
рдЧрдгрдирд╛ рдЧреНрд░рд╛рдлрд╝ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐
рдирд┐рд╖реНрдХрд░реНрд╖ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЛ рдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
dask.set_options( pool=ThreadPool(10)
), рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рд▓реИрдкрдЯреЙрдк рдпрд╛ рдкреАрд╕реА рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реНрд╡реИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛ред
dask.config.set( scheduler='processes'
)) ред
рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдбреЗрдЯрд╛ рд╕рд╛рдЗрдВрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдбреИрд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдХрд┐рддрдирд╛ рддреБрдЪреНрдЫ рд╣реЛрдЧрд╛ред рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдХреНрд▓рд┐рдХ рдХреЛ 40 рдорд┐рдирдЯ рдХреЗ рд╕реЗрд╢рди рдореЗрдВ рдпреВрдЬрд░ рдХреНрд▓рд┐рдХ рд╕реНрдЯреНрд░реАрдо (рд╡рд┐рдЬрд┐рдЯ рд╣рд┐рд╕реНрдЯреНрд░реА) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Dask рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЖрдЧреЗ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХрддреНрд░рд┐рдд рдХрд┐рдпрд╛ред рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдкрдиреЗ Dask рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛!