Comment utiliser des bibliothèques Python externes dans une tâche AWS Glue ?

Date de la dernière mise à jour : 29/04/2020

Je souhaite utiliser une bibliothèque Python externe dans une tâche AWS Glue.

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. 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. Pour plus d'informations, consultez Versions d'AWS Glue.

Remarque : les bibliothèques et les modules d'extension pour les tâches Spark doivent être écrits en Python. Les bibliothèques telles que les pandas, écrites en C, ne sont pas prises en charge.

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 pip et boto3. Pour plus d'informations, consultez Démarrage rapide.

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py
sudo pip install boto3

5.    Confirmez l'emplacement du répertoire site-packages Python :

python -m site

Exemple de sortie :

/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 Packages dans la documentation Python. Voici un 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.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?