Как я могу использовать внешнюю библиотеку Python в AWS Glue? - PullRequest
0 голосов
/ 02 октября 2019

Первый вопрос переполнения стека здесь. Надеюсь, я сделаю это правильно:

Мне нужно использовать внешнюю библиотеку python в AWS glue. «Openpyxl» - это имя библиотеки.

Я следую этим указаниям: https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-libraries.html

Однако, после того как мой zip-файл сохранен в правильном местоположении s3, я указываю мою работу по склеиваниюв этом месте я не уверен, что на самом деле писать в скрипте.

Я попробовал ваш типичный Import openpyxl, но это просто возвращает следующую ошибку:

ImportError: No module named openpyxl

Очевидно, я неНе знаю, что здесь делать - тоже относительно плохо знакомый с программированием, поэтому я не уверен, что это нубский вопрос или что. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Вы можете использовать следующий шаблонный код для использования дополнительных файлов, а также внешних библиотек - https://github.com/fatangare/aws-python-shell-deploy

0 голосов
/ 03 октября 2019

Это зависит от того, является ли работа Spark или Python Shell. Для Spark вам просто нужно заархивировать библиотеку, а затем, когда вы укажете задание на путь библиотеки S3, задание импортирует его. Вам просто нужно убедиться, что в zip-файле содержится этот файл: __init__.py

Например, для библиотеки, которую вы пытаетесь импортировать, если вы загружаете ее из https://pypi.org/project/openpyxl/#files,, вы можете заархивировать папку openpyxl внутри openpyxl-3.0.0.tar.gz и сохраните его в S3.


С другой стороны, если это задание Python Shell,ZIP-файл не будет работать. Вам нужно будет создать файл egg из библиотеки. Если вы используете эту версию openpyxl-3.0.0, то вы можете скачать ее с того же веб-сайта, извлечь все и запустить команду python setup.py bdist_egg или python3 вместо python , есливместо этого вы используете python3.

Это создаст файл egg внутри папки dist, которая также будет сгенерирована. Вам просто нужно поместить этот файл egg в S3 и указать Glue Job Python Libraries на этот путь.

Если у вас уже есть библиотека и по какой-то причине у вас нет setup.py, то вы должнысоздайте его, чтобы запустить команду для создания файла яйца. Пожалуйста, обратитесь к http://www.blog.pythonlibrary.org/2012/07/12/python-101-easy_install-or-how-to-create-eggs/. Там вы можете найти пример.

...