Я пытаюсь распределить большой фрейм данных Dask на нескольких машинах для (позже) распределенных вычислений в фрейме данных. Для этого я использую dask-distribution.
Все примеры / документы с распределением dask, которые я вижу, заполняют начальную загрузку данных из сетевого ресурса (hdfs, s3 и т. необходимое зло и просто съедает начальную стоимость.) Это подчеркивается в ответе на другой вопрос: Обменивается ли Dask данными с HDFS для оптимизации локальности данных?
Однако я вижу случаи, когда мы этого хотели бы. Например, если у нас есть сегментированная база данных + рабочие процессы, совместно расположенные на узлах этой БД, мы бы хотели принудительно загружать записи только из локального сегмента в локальные рабочие процессы. Из документации / примеров пересечение сети кажется неизбежно предполагаемой стоимостью. Можно ли принудительно получить части одного фрейма данных от определенных исполнителей?
Альтернатива, которую я пробовал, - это попытаться заставить каждого рабочего запускать функцию (итеративно отправляемую каждому рабочему), где функция загружает только данные, локальные для этой машины / осколка. Это работает, и у меня есть несколько оптимально локальных фреймов данных с одинаковой схемой столбцов, однако теперь у меня нет ни одного фрейма данных, а есть n фреймов данных.