Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation de bibliothèques Python avec EMR Serverless
Lorsque vous exécutez PySpark des tâches sur des applications Amazon EMR Serverless, vous pouvez empaqueter différentes bibliothèques Python sous forme de dépendances. Pour ce faire, vous pouvez utiliser les fonctionnalités natives de Python, créer un environnement virtuel ou configurer directement vos PySpark tâches pour utiliser les bibliothèques Python. Cette page couvre chaque approche.
Utilisation des fonctionnalités natives de Python
Lorsque vous définissez la configuration suivante, vous pouvez l'utiliser PySpark pour télécharger des fichiers Python (.py
), des packages Python compressés (.zip
) et des fichiers Egg (.egg
) vers les exécuteurs Spark.
--conf spark.submit.pyFiles=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/<.py|.egg|.zip file>
Pour plus de détails sur l'utilisation des environnements virtuels Python pour les PySpark tâches, consultez la section Utilisation des fonctionnalités PySpark natives
Création d'un environnement virtuel Python
Pour empaqueter plusieurs bibliothèques Python pour une PySpark tâche, vous pouvez créer des environnements virtuels Python isolés.
-
Pour créer l'environnement virtuel Python, utilisez les commandes suivantes. L'exemple illustré installe les packages
scipy
matplotlib
dans un environnement virtuel et copie l'archive vers un emplacement Amazon S3.Important
Vous devez exécuter les commandes suivantes dans un environnement Amazon Linux 2 similaire avec la même version de Python que celle que vous utilisez dans EMR Serverless, c'est-à-dire Python 3.7.10 pour Amazon EMR version 6.6.0. Vous pouvez trouver un exemple de Dockerfile dans le référentiel EMRServerless Samples
. GitHub # initialize a python virtual environment python3 -m venv pyspark_venvsource source pyspark_venvsource/bin/activate # optionally, ensure pip is up-to-date pip3 install --upgrade pip # install the python packages pip3 install scipy pip3 install matplotlib # package the virtual environment into an archive pip3 install venv-pack venv-pack -f -o pyspark_venv.tar.gz # copy the archive to an S3 location aws s3 cp pyspark_venv.tar.gz s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/ # optionally, remove the virtual environment directory rm -fr pyspark_venvsource -
Soumettez la tâche Spark avec vos propriétés définies pour utiliser l'environnement virtuel Python.
--conf spark.archives=s3://
amzn-s3-demo-bucket
/EXAMPLE-PREFIX
/pyspark_venv.tar.gz#environment --conf spark.emr-serverless.driverEnv.PYSPARK_DRIVER_PYTHON=./environment/bin/python --conf spark.emr-serverless.driverEnv.PYSPARK_PYTHON=./environment/bin/python --conf spark.executorEnv.PYSPARK_PYTHON=./environment/bin/pythonNotez que si vous ne remplacez pas le binaire Python d'origine, la deuxième configuration de la séquence de paramètres précédente sera
--conf spark.executorEnv.PYSPARK_PYTHON=python
la suivante.Pour en savoir plus sur l'utilisation des environnements virtuels Python pour les PySpark tâches, consultez la section Utilisation de Virtualenv
. Pour plus d'exemples sur la façon de soumettre des tâches Spark, consultezUtilisation des configurations Spark lorsque vous exécutez des EMR tâches sans serveur.
Configuration des PySpark tâches pour utiliser les bibliothèques Python
Avec les EMR versions 6.12.0 et supérieures d'Amazon, vous pouvez configurer directement des PySpark tâches EMR sans serveur pour utiliser les bibliothèques Python de science des données les plus populaires, telles que Pandas, et ce NumPy
Les exemples suivants montrent comment empaqueter chaque bibliothèque Python pour une PySpark tâche.