La documentation AWS https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html
mentionne que
L'environnement d'exécution d'un travail de shell Python prend en charge les bibliothèques suivantes:
...
pandas (doit être installé via la configuration python setuptools, setup.py)
Mais il ne mentionne pas comment faire l'installation.
Comment puis-je utiliser Pandas dans une tâche AWS Glue Python Shell?
4 Réponses :
install_requires=['pandas==0.25.1']
:setup(name="<module name>", version="0.1", packages=['<package name if any or ignore>'], install_requires=['pandas==0.25.1'] )
J'ai également écrit un petit script shell pour déployer un travail de shell python sans étapes manuelles pour créer un fichier egg et le télécharger vers s3 et le déployer via cloudformation. Script fait tout automatiquement. Vous pouvez trouver du code sur https://github.com/fatangare/aws-python-shell-deploy
Pouvez-vous clarifier les choses? Une fois que vous avez setup.py, vous le transmettez à la définition du travail en utilisant les arguments "—extra-py-files"?
Vérifiez le lien partagé ci-dessus. Il contient toutes les étapes. Vous devez créer un fichier .egg en utilisant setup.py et le passer aux arguments "—extra-py-files"
Juste pour clarifier la réponse de Sandeep, voici ce qui a fonctionné pour moi
1 / Ignorer la documentation AWS
2 / Créez un fichier setup.py contenant:
python setup.py bdist_wheel
3 / Exécutez cette commande dans le dossier contenant le fichier:
from setuptools import setup setup(name="pandasmodule", version="0.1", packages=[], install_requires=['pandas==0.25.1'] )
4 / Téléchargez le fichier .whl vers s3
5 / Configurez le "Python lib path" de votre Job Glue ETL vers le chemin s3
Vous pouvez maintenant utiliser " import pandas as pd
" dans votre travail Glue ETL
Plusieurs packages peuvent-ils être inclus dans setup.py? Si oui, quelqu'un pourrait-il publier un exemple?
bien sûr, ajoutez simplement plus de noms de modules, dans la ligne "install_requires"
Pas besoin de faire quoi que ce soit, importez simplement des pandas et commencez à les utiliser.
AWS Glue 2.0 prend en charge les pandas: 1.0.1 https://docs.aws.amazon.com/glue/latest/dg/reduced-start-times-spark-etl-jobs.html
donc dans votre script, vous pouvez simplement écrire: import pandas. Si vous souhaitez utiliser un autre module python qui n'est pas fourni dans Glue, vous pouvez télécharger .whl ou .zip -> le stocker dans S3 -> placer le chemin de celui-ci dans la tâche glue dans "Python library path" et coller pendant une tâche exécutée fera une installation pip "yourmodule"