Используйте AWS Glue Python с пакетами NumPy и Pandas Python

Какой самый простой способ использовать такие пакеты, как NumPy и Pandas, в новом инструменте ETL в AWS под названием Glue? У меня есть законченный скрипт в Python, который я хотел бы запустить в AWS Glue, который использует NumPy и Pandas.

Ответы

Ответ 1

Я думаю, что в текущем ответе вы не можете. Согласно документации AWS Glue:

Могут использоваться только чистые библиотеки Python. Библиотеки, которые полагаются на C-расширения, такие как Pandas Python Data Analysis Library, пока не поддерживаются.

Но даже когда я пытаюсь включить в S3 обычную написанную на питоне библиотеку, работа с клеем завершилась неудачно из-за некоторой проблемы разрешения HDFS. Если вы найдете способ решить эту проблему, сообщите мне об этом.

Ответ 2

Если у вас нет чистых библиотек Python и вы все еще хотите их использовать, вы можете использовать приведенный ниже скрипт, чтобы использовать его в своем коде Glue:

import os
import site
from setuptools.command import easy_install
install_path = os.environ['GLUE_INSTALLATION']
easy_install.main( ["--install-dir", install_path, "<library-name>"] )
reload(site)


import <installed library>

Ответ 3

когда вы нажимаете "Запуск задания", у вас есть кнопка "Параметры задания" (необязательно), которая по умолчанию свертывается, когда мы нажимаем на нее, у нас есть следующие параметры, которые мы можем использовать для сохранения библиотек в s3, и это работает для меня:

Путь библиотеки Python

/Имя файла/имя папки ковшового имя //: s3

Зависимый путь банки

/Имя файла/имя папки ковшового имя //: s3

Путь ссылочных файлов s3://bucket-name/имя-папки/имя файла

Ответ 4

Если вы перейдете к редактированию задания (или при создании нового), появится необязательный раздел, который будет свернут с именем "Библиотеки скриптов и параметры задания (необязательно)". Там вы можете указать ведро S3 для библиотек Python (а также другие вещи). Я еще не пробовал себя для этой части, но я думаю, что вы ищете.

Ответ 5

Есть обновление:

... Теперь вы можете использовать задания оболочки Python...... Задания оболочки Python в сценариях поддержки AWS Glue, которые совместимы с Python 2.7 и поставляются с предварительно загруженными библиотеками, такими как Boto3, NumPy, SciPy, pandas и другими,

https://aws.amazon.com/about-aws/whats-new/2019/01/introducing-python-shell-jobs-in-aws-glue/

Ответ 6

Если вы хотите интегрировать модули python в свое задание AWL GLUE ETL, вы можете это сделать. Вы можете использовать любой модуль Python, который вы хотите. Поскольку клей не является ничем иным, как безсерверным с рабочей средой Python. SO все, что вам нужно, - это упаковать модули, которые требует ваша скрипта, с помощью pip install -t/path/to/your/dircetory. А затем загрузите в свой ведро s3. И при создании задания AWS Glue, указав s3-скрипты, временное местоположение, если вы перейдете к расширенному параметру параметров задания, вы увидите там параметр python_libraries. введите описание изображения здесь. Вы можете просто указать, что для пакетов модулей python, которые вы загрузили на s3.

Ответ 7

На данный момент вы можете использовать модули расширения и библиотеки Python со сценариями AWS Glue ETL, если они написаны на чистом Python. Библиотеки C, такие как панды, в настоящее время не поддерживаются, а также расширения, написанные на других языках.

Ответ 8

Чтобы установить конкретную версию (например, для задания Python AWS Glue), перейдите на веб-сайт с пакетами Python, например на страницу пакета "pg8000" https://pypi.org/project/pg8000/1.12. 5/файлов #

Затем выберите подходящую версию, скопируйте ссылку на файл и вставьте ее во фрагмент ниже:

import os
import site
from setuptools.command import easy_install
install_path = os.environ['GLUE_INSTALLATION']

easy_install.main( ["--install-dir", install_path, "https://files.pythonhosted.org/packages/83/03/10902758730d5cc705c0d1dd47072b6216edc652bc2e63a078b58c0b32e6/pg8000-1.12.5.tar.gz"] )
reload(site)