Изменение входных данных с задержкой dask без воссоздания графика

#python #dask #dask-delayed

Вопрос:

У меня есть серия вычислений по некоторым данным, которые я моделирую в виде графика с задержкой dask, и они хорошо работают, однако создание самого графика занимает больше времени (или сопоставимого времени), чем выполнение вычислений.

Я добавляю данные в течение дня, поэтому хотел бы иметь возможность изменять входные данные без воссоздания графика, есть ли способ сделать это?

Ответ №1:

Это продвинутая тема, поэтому я собираюсь предоставить только несколько банальное решение:

 import dask
from dask.multiprocessing import get

@dask.delayed()
def myfunc(x):
    return x 1

nested = 0
for x in range(1, 3):
    nested = myfunc(x*nested, dask_key_name=f'{x}')

# 1*0   1 = 1 -> 2*1   1 = 3
print(nested.compute())

dag_modified = nested.dask.to_dict()
dag_modified['1'] = modified_dag['1'][0], 2

# 1*2   1 = 3 -> 2*3   1 = 7
print(get(dag_modified, '2'))
 

Комментарии:

1. Я уверен, что некоторые объяснения будут оценены по достоинству

2. Спасибо, хотел бы я знать больше… Я пытаюсь найти способ упаковать измененный dag в хороший отложенный объект, но не могу найти чистое решение.