Я использую ванильную установку Dask-Kubernetes с двумя рабочими процессами и одним планировщиком для перебора строк некоторого файла JSON (и применения некоторых функций, которые здесь не показаны для простоты). Я вижу, что когда-либо работал только один рабочий, а я бы ожидал увидеть их двоих.
Надеясь, что перераспределение поможет, я экспериментировал с разными значениями для bag.repartition(num)
, которые возвращают разное количество строк, но они ничего не меняют в дисбалансе рабочих и потреблении памяти, концентрируясь только на одном работнике.
Я думаю, что не понимаю корреляцию между разделами и рабочими, и я не смог найти ничего в документации Dask об этом. Любая помощь или указатели приветствуются!
import dask.bag as db
def grep_buildings():
base = "https://usbuildingdata.blob.core.windows.net/usbuildings-v1-1/"
b = db.text.read_text(f"{base}/Alabama.zip")
# b = b.repartition(2)
lines = b.take(3_000_000)
return lines
len(grep_buildings())