Я настроил Dask и JupyterHub на кластере Kubernetes, используя Helm с помощью документации Dask: http://docs.dask.org/en/latest/setup/kubernetes.html.
Все развернуто нормально, и я могу получить доступ к JupyterLab.Затем я создал блокнот и загрузил файл CSV из корзины Google Cloud Storage:
storage_client = storage.Client.from_service_account_json(CREDENTIALS)
bucket = storage_client.get_bucket(BUCKET)
download_blob(bucket, file="test-file", destination_dir="data/")
Я прочитал в файле CSV:
import dask.dataframe as dd
df = dd.read_csv("/home/jovyan/data/*.csv")
Я инициализирую Dask Client так, чтобыЯ могу отслеживать аналитику вычислений:
from dask.distributed import Client, config
client = Client()
Пока все хорошо, пока я не попытаюсь взаимодействовать с фреймом данных.Например, когда я пытаюсь сделать df.head()
, я получаю сообщение об ошибке:
[Errno 2] Нет такого файла или каталога: '/home/jovyan/data/test-file.csv'
Почему другие работники не могут найти DataFrame? Я думал, что DataFrame был распределен среди памяти всех работников.
Примечание: Сначала я использовалdf.head()
без Dask Client, и это сработало, но я не видел никакой диагностики, поэтому я добавил client = Client()
.