Как использовать Dask Distributed Futures - PullRequest
0 голосов
/ 04 мая 2020

У меня есть будущее, которое представляет собой набор python, который я транслировал (LocalCluster):

In [0]: [set_future] = client.scatter([_set], broadcast=True)

In [1]: set_future

Out[1]: Future: set status: finished, type: builtins.set, key: set-529f704c52fef330450e5d68302fbeac

Теперь я просто хочу, чтобы эти данные были доступны в моей map_partitons операции:

In [2]: def mapper(pdf, _set):
          assert type(_set)==set
          return pdf

        ddf.map_partitions(mapper, set_future)

Out[2]: AssertionError()

Однако в маппере типом является distributed.client.Future, а не set. Кажется, будущее не восстановлено из кластера. Что я делаю неправильно?

1 Ответ

0 голосов
/ 04 мая 2020

Если вы не предоставите от meta до map_partitions, Dask попытается вывести их с фиктивными данными и фактически оценит вашу функцию отображения. Однако в этом контексте фьючерсы не разрешаются из кластера, что приведет к ошибке вашей функции.

В итоге, если вы используете фьючерсы, вы должны указать meta.

...