#python #amazon-web-services #pip #amazon-emr
#python #amazon-web-services #pip #amazon-emr
Вопрос:
В Amazon EMR я использую следующий скрипт в качестве пользовательского действия начальной загрузки для установки пакетов python. Скрипт работает нормально (проверил журналы, пакеты успешно установлены), но когда я открываю записную книжку в Jupyter Lab, я не могу импортировать ни один из них. Если я открою терминал в JupyterLab и запущу pip list
или pip3 list
, ни одного из моих пакетов там нет. Даже если я перейду /
и запущу find . -name mleap
, например, он не существует.
Я заметил, что на главном узле я все время получаю сообщение об ошибке, в котором говорится, что действие начальной загрузки 2 завершилось неудачно (второго действия нет, только одно).). В соответствии с этим, это редкая ошибка, которую я получаю во всех своих кластерах. Тем не менее, мой кластер в конечном итоге создается, и я могу его использовать.
Мой скрипт вызывается aws-emr-bootstrap-actions.sh
#!/bin/bash
sudo python3 -m pip install numpy scikit-learn pandas mleap sagemaker boto3
Я подозреваю, что это может быть как-то связано с развертываемым образом docker, который аннулирует мои предыдущие установки или что-то в этом роде, но я думаю (для моих поисковых запросов в Google), что обычно для установки пакетов Python используются действия начальной загрузки, и они должны работать…
Комментарии:
1. Вы уверены, что PYSPARK использует Python 3?
2. @LukaszTracewski это хороший момент, но я получаю те же ошибки (модуль не назван …), Когда я переключаюсь на ядро Python 3 в своем ноутбуке.
3. Можете ли вы проверить системный путь? То есть найдите, откуда загружаются модули.
4. Я обнаружил, что ядро Pyspark использует python 3.7.9, в то время как интерпретатор Python, который я могу открыть (вне ноутбука) из JupyterLab, использует python 3.7.8. По какой-то причине сегодня он работает!! и я вижу свои пакеты в ядре Pyspark, но не в ядре Python 3. Sys.path сильно отличается в обоих — я думаю, я где-то читал, что Pyspark запускается в docker. Sys.path в ядре Python 3: ‘/ home/ notebook / work’, ‘/opt/conda/lib/python37.zip ‘, ‘/opt/conda/lib/python3.7’, ‘/opt/conda/lib/python3.7/lib-dynload’, «, ‘/opt/conda/lib/python3.7/site-packages’, …
5. Системный путь для ядра pyspark: ‘/ mnt / tmp’, ‘/mnt/tmp/spark-f8de6a81-563d-4…/userFiles-ac7efb7e-…/py4j-0.10.7-src.zip ‘,’/mnt/tmp/spark-f8de6a81-…/userFiles-ac7efb7e-0d15-4cb7-beed-6e9a7672f058/pyspark.zip ‘, ‘/mnt/tmp/spark-f8de6a81-563d-4043-908c-30a00902d844/Файлы пользователя-ac7efb7e-0d15-4cb7-beed-6e9a7672f058’, ‘/’, ‘/usr/lib/spark/python/lib/pyspark.zip ‘,’/usr/lib/spark/python/lib/py4j-0.10.7-src.zip ‘,’/tmp/1607344911142-0/lib64/python37.zip ‘, ‘/tmp/1607344911142-0/lib64/python3.7’, ‘/tmp/1607344911142-0/lib64/python3.7/lib-dynload’, ‘/usr/lib64/python3.7’, ‘/usr/lib/python3.7 ‘,
Ответ №1:
Интерпретатор PYSPARK
Python, который использует Spark, отличается от того, на который OP устанавливал модули (как подтверждено в комментариях).
Комментарии:
1. На самом деле по какой-то причине кажется, что я устанавливал модули прямо для ядра Pyspark, но не может быть найден ядром Python 3, но да, спасибо!