df = df.compute(scheduler='processes') # convert to pandas
Не делай этого!
Вы загружаете части в отдельных процессах, а затем переносите все данные, которые должны быть сшиты, в один фрейм данных в основном процессе. Это только увеличит накладные расходы на вашу обработку и создаст копии данных в памяти.
Если все, что вы хотите сделать, - это (по какой-то причине) распечатать каждую строку на консоли, то вам было бы прекрасно, если бы вы использовали Pandas streaming CSV reader (pd.read_csv(chunksize=..)
). Вы могли бы запустить его, используя чанки Даск, и, возможно, получить ускорение, если вы печатаете на рабочих, которые читают данные:
df = dd.read_csv(..)
# function to apply to each sub-dataframe
@dask.delayed
def print_a_block(d):
for row in df:
print(row)
dask.compute(*[print_a_block(d) for d in df.to_delayed()])
Обратите внимание, что for row in df
на самом деле возвращает вам столбцы, может быть, вы хотели, чтобы это были строки, или, возможно, вы действительно хотели как-то обработать ваши данные.