Я начинаю работу с dask. Для моего собственного понимания (и понимания моих коллег, которым я хочу продемонстрировать dask) я хочу создать базовый фрейм данных, выполнить базовую операцию и сравнить время выполнения с реализацией только для панд. Это моя очень простая попытка:
import dask
import dask.multiprocessing
import dask.dataframe as dd
import pandas as pd
import time
dask.set_options(get=dask.multiprocessing.get)
start = time.time()
df = dd.from_pandas(pd.DataFrame(data={'a': list(range(10))}), npartitions=4)
df['a'].apply(lambda x: time.sleep(2))
end = time.time()
print(f'time elapsed: {end - start}')
Я использую многопроцессорный планировщик, потому что ожидал, что процессы появятся в вызове ps aux | grep python
в отдельной оболочке. Однако я их не вижу. Есть ли в демонстрационных целях способ перечислить все процессы, которые использует dask?
Для справки, я вижу улучшение в прошедшем времени. Реализация pandas (здесь не показана) занимает 20 секунд, а версия dask — 4 секунды. Однако, учитывая тот факт, что я использовал 4 раздела, я ожидал, что потребуется 5.
time.sleep()
не является хорошим подходом. 05.06.2018