Ответ 1
Чтобы использовать распараллеленные кадры данных Dask (построенные поверх панд), вы должны указать pip установить некоторые "дополнения" (ссылка), как указано в документации по установке Dask:
pip install "dask[dataframe]"
Или ты можешь просто сделать
pip install "dask[complete]"
чтобы получить всю сумку трюков. NB. Двойные кавычки могут или не могут потребоваться в вашей оболочке.
Обоснование этого (или было) упомянуто в документации Dask:
Мы делаем это так, чтобы пользователям облегченного основного планировщика даска не приходилось загружать более экзотические зависимости коллекций (numpy, pandas и т.д.)
Как упоминалось в ответе Обинны, вы можете захотеть сделать это внутри virtualenv или использовать pip install --user
, чтобы поместить библиотеки в ваш домашний каталог, если, скажем, у вас нет прав администратора на хост ОС.
Дополнительные детали
В Dask 0.13.0 и ниже существовало требование для функции toolz'identity
в dask/async.py
. Существует открытый закрытый запрос на извлечение, связанный с GitHub , проблема # 1849, чтобы удалить эту зависимость. А пока Если по какой-то причине вы застряли на старой версии dask, вы можете обойти эту конкретную проблему, просто выполнив pip install toolz
.
Но это не (полностью) не решит вашу проблему с import dask.dataframe as dd
в любом случае. Потому что вы все равно получите эту ошибку:
>>> import dask.dataframe as dd
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/data/staff_agbio/PhyloWeb/data/dask-test/venv/local/lib/python2.7/site-packages/dask/dataframe/__init__.py", line 3, in <module>
from .core import (DataFrame, Series, Index, _Frame, map_partitions,
File "/data/staff_agbio/PhyloWeb/data/dask-test/venv/local/lib/python2.7/site-packages/dask/dataframe/core.py", line 12, in <module>
import pandas as pd
ImportError: No module named pandas
или если у вас уже установлены панды, вы получите ImportError: No module named cloudpickle
. Таким образом, pip install "dask[dataframe]"
, кажется, является подходящим вариантом, если вы находитесь в такой ситуации.