Используйте дополнительную библиотеку в PySpark3 на HdInsight
Я пытаюсь установить библиотеку Shapely, но при ее импорте появляется сообщение об ошибке:
> from shapely.geometry import Point
No module named 'shapely'
Traceback (most recent call last):
ImportError: No module named 'shapely'
Мое ядро:
cat /usr/local/share/jupyter/kernels/pyspark3kernel/kernel.json
{"argv":["python","-m","sparkmagic.kernels.pyspark3kernel.pyspark3kernel", "-f", "{connection_file}"],
"display_name":"PySpark3"
}
Я проверил, где установлены мои другие библиотеки:
> import pandas
> pandas.__file__
'/usr/bin/anaconda/envs/py35/lib/python3.5/site-packages/pandas/__init__.py'
Shapely устанавливается в ту же папку:
/usr/bin/anaconda/envs/py35/lib/python3.5/site-packages$ ls *hapely*
shapely:
affinity.py _buildcfg.py ctypes_declarations.py examples geometry geos.py __init__.py linref.py predicates.py __pycache__ strtree.py validation.py wkb.py
algorithms coords.py errors.py ftools.py _geos.pxi impl.py iterops.py ops.py prepared.py speedups topology.py vectorized wkt.py
Shapely-1.6.3.dist-info:
DESCRIPTION.rst INSTALLER METADATA metadata.json RECORD top_level.txt WHEEL
К вашему сведению, моя искра находится над кластером HD Insight.
Что я должен сделать или проверить, чтобы исправить эту библиотеку? Дайте мне знать, если вам нужно больше деталей.
РЕДАКТИРОВАТЬ:
Я только что обнаружил, что
%%local
from shapely.geometry import Point
работает отлично... поэтому я думаю, что моя библиотека не установлена в кластере, но установлена локально. Как я могу развернуть его в кластере?
1 ответ
Поскольку это искровой кластер, на каждом узле должна быть установлена библиотека lib. Поэтому мне нужно выполнить команду установки через "действие сценария" в интерфейсе HD Insight. Но, поскольку я использую виртуальный env, команда нуждается в -n env
опция будет добавлена.
Последняя команда для запуска:
#!/usr/bin/env bash
/usr/bin/anaconda/bin/conda install -c conda-forge shapely -n py35