Я хочу отправить задачу dask, которая будет делать следующее:
- Создайте ленивый граф dask с помощью dask.bag (
def fakejob
) - Вычислите график из 1. и сохраните его на паркете (эта часть не учитывается, просто мотивация).
Мне нужно сделать это для нескольких входов, поэтому я пытался использовать фьючерсную функцию dask.distributed вот так.
from dask.distributed import Client
client = Client(processes=True)
def fakejob(path):
return (
dask.bag
.read_text(path)
.to_dataframe()
)
futures = client.map(fakejob, [input_path1, input_path2])
Проблема в том, что я получаю: AssertionError: daemonic processes are not allowed to have children
Я пробовал перейти по этой ссылке и получил вторую версию (отличается на 1 строку от первой), но фьючерсы остаются «ожидающими» навсегда.
from dask.distributed import Client
client = Client(processes=True)
def fakejob(path):
with dask.set_options(get=client.get):
return (
dask.bag
.read_text(path)
.to_dataframe()
)
futures = client.map(fakejob, [input_path1, input_path2])
Есть какие-нибудь подсказки, как это сделать?
Ваше здоровье.