1
votes

Utilisation de tâches Pandas AWS Glue Python Shell

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?


0 commentaires

4 Réponses :


2
votes
  1. Allez à https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html#create-python-extra-library . Consultez la section Pour créer un fichier Python .egg ou .whl pour savoir `` comment créer un fichier de configuration pour un travail de shell python ''
  2. Dans le fichier setup.py, ajoutez la ligne install_requires=['pandas==0.25.1'] :
  3. 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


2 commentaires

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"



4
votes

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


2 commentaires

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"



0
votes

Pas besoin de faire quoi que ce soit, importez simplement des pandas et commencez à les utiliser.


0 commentaires

0
votes

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"


0 commentaires