Поскольку в вашей процедуре преобладает IO, очень маловероятно, что в этом случае Dask сделает что-либо, кроме добавления накладных расходов, , если ваша хеш-функция действительно очень медленная.Я предполагаю, что это не так. Решение
@ zwer будет выглядеть примерно так:
files = [open("{}.csv".format(number), 'a+') for number in range(255)]
for _, line in df.iterrows():
number = hash(line[2]) % 256
files[number].write(', '.join(line))
[f.close() for f in files]
Однако ваши данные, похоже, помещаются в память, поэтому вы можете найти гораздо лучшую производительность
for (number, group) in df.groupby(df.iloc[:, 2].map(hash)):
group.to_csv("{}.csv".format(number))
, потому что вы пишете в каждый файл непрерывно, а не между ними.В зависимости от вашего устройства ввода-вывода и буферизации, разница может быть нулевой или огромной.