¿Cómo puedo utilizar bibliotecas externas de Python en mi trabajo de ETL de AWS Glue 1.0 o 0.9?

4 minutos de lectura
0

Quiero usar una biblioteca externa de Python en mi trabajo de extracción, transformación y carga (ETL) de AWS Glue 1.0 o 0.9.

Descripción corta

Para usar una biblioteca externa en un trabajo de ETL de Apache Spark, siga estos pasos:

1.    Empaquete los archivos de la biblioteca en un archivo.zip (a menos que la biblioteca esté contenida en un único archivo.py).

2.    Cargue el paquete en Amazon Simple Storage Service (Amazon S3).

3.    Utilice la biblioteca en un trabajo o JobRun.

Resolución

A continuación se muestra un ejemplo de cómo utilizar una biblioteca externa en un trabajo de ETL de Spark en AWS Glue 1.0 o 0.9.

Importante: Si desea utilizar una biblioteca externa en su trabajo de AWS Glue 2.0, consulte ¿Cómo puedo utilizar bibliotecas externas de Python en mi trabajo de ETL de AWS Glue 2.0? Si desea utilizar una biblioteca externa en un trabajo de shell de Python, siga los pasos que se describen en Proporcionar su propia biblioteca de Python.

1.    Cree una biblioteca de Python 2 o Python 3 para Boto3. Asegúrese de que la versión de AWS Glue que utiliza sea compatible con la versión de Python que elija para la biblioteca. La versión 1.0 de AWS Glue es compatible con Python 2 y Python 3, mientras que la versión 0.9 de AWS Glue solo es compatible con Python 2.

Nota: Las bibliotecas y los módulos de extensión para trabajos de Spark se deben escribir en Python. Las bibliotecas escritas en C, como pandas, no son compatibles con Glue 0.9 ni 1.0. Si necesita utilizar una biblioteca escrita en C, actualice AWS Glue como mínimo a la versión 2.0 y utilice la opción --additional-python-modules. Para obtener más información, consulte ¿Cómo puedo utilizar bibliotecas externas de Python en mi trabajo de ETL de AWS Glue 2.0?

2.    Lance una instancia de Linux de Amazon Elastic Compute Cloud (Amazon EC2).

3.    Conéctese a la instancia de Linux con SSH.

4.    Ejecute los siguientes comandos para instalar Python y Boto3. Para obtener más información, consulte la documentación de Boto3 en relación con Quickstart.

sudo yum groupinstall "Development Tools"
sudo yum -y install openssl-devel
wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9/
./configure --enable-optimizations
sudo make install
sudo pip install boto3

5.    Confirme la ubicación del directorio site-packages de Python:

python -m site

El resultado se parecerá al siguiente:

/usr/lib/python3.6/site-packages

6.    Empaquete los archivos de la biblioteca externa en un archivo .zip, a menos que la biblioteca esté contenida en un único archivo .py. El archivo .zip debe incluir un archivo __init__.py, mientras que el directorio del paquete debe encontrarse en la raíz del archivo. El archivo __init__.py puede estar en blanco. Para obtener más información, consulte la documentación de Python en relación con los paquetes.

Ejemplo:

cd /usr/lib/python3.6/site-packages
sudo zip -r -X "/home/ec2-user/site-packages.zip" *

7.    Cargue el paquete en Amazon S3:

aws s3 cp /home/ec2-user/site-packages.zip s3://awsexamplebucket/

8.    Utilice la biblioteca en un trabajo o JobRun.

Para usar una biblioteca externa en un punto de conexión de desarrollo, siga estos pasos:

1.    Empaquete la biblioteca y cargue el archivo en Amazon S3, como se ha explicado anteriormente.

2.    Cree el punto de conexión de desarrollo. Para la ruta de la biblioteca de Python, introduzca la ruta de Amazon S3 para el paquete. Para obtener más información, consulte Carga de bibliotecas Python en un punto de conexión de desarrollo.


Información relacionada

Uso de bibliotecas de Python con AWS Glue

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año