Comment puis-je utiliser des bibliothèques Python externes dans ma tâche ETL AWS Glue 1.0 ou 0.9 ?

Lecture de 3 minute(s)
0

Je souhaite utiliser une bibliothèque Python externe dans ma tâche Extract-transform-load (ETL) AWS Glue 1.0 ou 0.9.

Brève description

Pour utiliser une bibliothèque externe dans une tâche ETL Spark Apache :

1.    Empaquetez les fichiers de bibliothèque dans un fichier .zip (sauf si la bibliothèque est contenue dans un seul fichier .py).

2.    Chargez le package dans Amazon Simple Storage Service (Amazon S3).

3.    Utilisez la bibliothèque dans une tâche ou une exécution de tâche.

Solution

Voici un exemple d'utilisation d'une bibliothèque externe dans une tâche ETL Spark AWS Glue 1.0 ou 0.9.

Important : Si vous souhaitez utiliser une bibliothèque externe dans votre tâche AWS Glue 2.0, consultez Comment utiliser des bibliothèques Python externes dans ma tâche ETL AWS Glue 2.0 ? Si vous souhaitez utiliser une bibliothèque externe dans une tâche shell Python, suivez les étapes de la section Fournir sa propre bibliothèque Python.

1.    Créez une bibliothèque Python 2 ou Python 3 pour boto3. Assurez-vous que la version AWS Glue que vous utilisez prend en charge la version Python que vous choisissez pour la bibliothèque. AWS Glue version 1.0 prend en charge Python 2 et Python 3, tandis qu'AWS Glue version 0.9 ne prend en charge que Python 2.

Remarque : les bibliothèques et les modules d'extension pour les tâches Spark doivent être écrits en Python. Les bibliothèques telles que pandas, qui sont écrites en C, ne sont pas prises en charge. Si vous devez utiliser une bibliothèque écrite en C, mettez à niveau AWS Glue vers la version 2.0 au moins et utilisez l'option --additional-python-modules. Pour plus d'informations, consultezComment puis-je utiliser des bibliothèques Python externes dans ma tâche ETL AWS Glue 2.0 ?

2.    Lancez une instance Linux Amazon EC2 (Amazon Elastic Compute Cloud).

3.    Connectez-vous à l’instance Linux à l'aide de SSH.

4.    Exécutez les commandes suivantes pour installer Python et Boto3. Pour plus d'informations, consultez la documentation Boto3 pour le démarrage rapide.

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.    Confirmez l'emplacement du répertoire site-packages Python :

python -m site

Vous recevez un résultat similaire au suivant :

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

6.    Empaquetez les fichiers de la bibliothèque externe dans un fichier .zip, sauf si la bibliothèque est contenue dans un seul fichier .py. Le fichier .zip doit inclure un fichier __init__.py et le répertoire du package doit être à la racine de l'archive. Le fichier __init__.py peut être vide. Pour plus d'informations, consultez la documentation Python pour Packages.

Exemple :

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

7.    Chargez le package sur Amazon S3 :

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

8.    Utilisez la bibliothèque dans une tâche ou une exécution de tâche.

Pour utiliser une bibliothèque externe dans un point de terminaison de développement :

1.    Empaquetez la bibliothèque et chargez le fichier dans Amazon S3, comme expliqué précédemment.

2.    Créez le point de terminaison de développement. Pour le chemin de bibliothèque Python, entrez le chemin Amazon S3 du package. Pour plus d'informations, consultez Chargement de bibliothèques Python dans un point de terminaison de développement.


Informations connexes

Utilisation des bibliothèques Python avec AWS Glue

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an