python модуль недоступен из ноутбука EMR - PullRequest
0 голосов
/ 19 июня 2020

Я использую записную книжку EMR, подключенную к моему кластеру, для некоторых экспериментальных целей. Мне нужно было установить некоторые python модули для тестирования, в частности spacy и его модуль данных en_core_web_sm.

I s sh в главный и основной узлы и загружал модули по отдельности. Однако я не могу импортировать данные из записной книжки EMR. Я получаю следующую ошибку:

An error was encountered:
No module named 'spacy'
Traceback (most recent call last):
ModuleNotFoundError: No module named 'spacy'

Я знаю, что есть способ установить их только для ноутбука EMR, но этого недостаточно в производственном сценарии, поэтому, пожалуйста, избегайте ответов, предлагающих ноутбук установка, как указано в этом руководстве: https://aws.amazon.com/blogs/big-data/install-python-libraries-on-a-running-cluster-with-emr-notebooks/

Пожалуйста, дайте мне знать, если мне не хватает некоторых шагов установки. Оцените ваш ответ.

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Вы можете использовать бутстрапы для установки дополнительных модулей при создании EMR https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-bootstrap.html

0 голосов
/ 22 июня 2020

Мне удалось решить эту проблему, изменив сценарий bootstrap на использование sudo вместо --user. (Вы также можете вручную изменить запуск скриптов ниже)

До того, как я запустил

pip3 install spacy --user
python3 -m spacy download en --user

Я изменил этот скрипт на

sudo pip3 install spacy
sudo python3 -m spacy download en

Чтобы быстро проверить это решение, выполните следующие команды из вашего ноутбука EMR (для сравнения до и после)

sc.list_packages()

Вы должны увидеть результат, аналогичный этому

SparkSession available as 'spark'.
Package                    Version   
-------------------------- ----------
beautifulsoup4             4.9.0     
blis                       0.4.1     
boto                       2.49.0    
catalogue                  1.0.0     
certifi                    2020.4.5.2
chardet                    3.0.4     
cymem                      2.0.3     
en-core-web-sm             2.3.0     
idna                       2.9       
importlib-metadata         1.6.1     
jmespath                   0.9.5     
lxml                       4.5.0     
murmurhash                 1.0.2     
mysqlclient                1.4.2     
nltk                       3.4.5     
nose                       1.3.4     
numpy                      1.16.5    
pip                        9.0.1     
plac                       1.1.3     
preshed                    3.0.2     
py-dateutil                2.2       
python37-sagemaker-pyspark 1.3.0     
pytz                       2019.3    
PyYAML                     5.3.1     
requests                   2.24.0    
setuptools                 28.8.0    
six                        1.13.0    
soupsieve                  1.9.5     
spacy                      2.3.0     
srsly                      1.0.2     
thinc                      7.4.1     
tqdm                       4.46.1    
urllib3                    1.25.9    
wasabi                     0.6.0     
wheel                      0.29.0    
windmill                   1.6       
zipp                       3.1.0

Это не лучшее возможное решение IMO, поскольку первое предупреждение, которое появляется после использования sudo:

WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.

Если у кого-то есть лучшее решение, пожалуйста, оставьте сообщение.

...