DataWorks vous permet d'exécuter des scripts Python sur des nœuds Shell. Cette rubrique explique comment exécuter des scripts Python 2 et Python 3 sur des nœuds Shell standard et des nœuds EMR Shell.
Contexte
DataWorks vous permet de télécharger des scripts Python en tant que ressources. Spécifiez ensuite le chemin de l'interpréteur pour Python 2 ou Python 3 dans un nœud Shell standard ou un nœud EMR Shell, puis exécutez le script en référençant la ressource téléchargée.
Prérequis
Respectez les prérequis pour l'utilisation d'un nœud EMR Shell. Pour plus d'informations, consultez la section Prérequis pour l'utilisation d'un nœud EMR Shell.
Respectez les prérequis pour l'utilisation d'un nœud Shell standard. Pour plus d'informations, consultez la section Prérequis pour l'utilisation d'un nœud Shell standard.
-
Si votre script Python nécessite des packages tiers, préparez l'environnement sur le groupe de ressources. La méthode dépend du type de groupe de ressources :
Groupe de ressources serverless (recommandé) : installez les packages tiers via la gestion des images. Pour plus d'informations, consultez la section Images personnalisées.
Groupe de ressources exclusif pour la planification : installez les packages tiers à l'aide d'O&M Assistant. Pour plus d'informations, consultez la section O&M Assistant.
RemarqueLorsque vous créez un package tiers, assurez-vous qu'il prend en charge à la fois
Python 2etPython 3.
Limites
Pour connaître les limites des nœuds EMR Shell, consultez la section Limites des nœuds EMR Shell.
Pour connaître les limites des nœuds Shell standard, consultez la section Limites des nœuds Shell standard.
Exécuter des scripts Python sur des nœuds Shell
DataWorks vous permet d'exécuter des scripts Python en référençant des ressources depuis un nœud Shell standard ou un nœud EMR Shell. Les chemins des interpréteurs varient selon la version de Python. Par exemple :
Python 2 :
python xx.pyPython 3 :
/home/tops/bin/python3 xx.py
Nœud Shell standard
-
Créez une ressource.
-
Accédez à la page DataStudio.
Connectez-vous à la console DataWorks. Basculez vers la région cible et cliquez sur dans le volet de navigation de gauche. Dans la liste déroulante, sélectionnez l'espace de travail cible et cliquez sur Go to DataStudio.
-
Créez une ressource Python MaxCompute.
Sur la page DataStudio, cliquez avec le bouton droit sur le workflow cible et choisissez Create Resource. Dans le répertoire MaxCompute, sélectionnez le type de ressource Python et créez une ressource nommée
mc.py.RemarqueLe nom de la ressource
mc.pyest donné à titre d'exemple. Vous pouvez spécifier un nom adapté à vos besoins métier. -
Modifiez la ressource Python MaxCompute.
Sur la page de configuration de la ressource, modifiez le code. Exemple de code :
Python 3
print('This is a test text')Python 2
print "This is a test text" Cliquez sur
et
pour enregistrer et valider la ressource.
-
-
Référencez la ressource.
-
Créez un nœud Shell standard.
Sur la page DataStudio, cliquez avec le bouton droit sur le workflow cible et choisissez Create Node. Dans le répertoire General, sélectionnez Shell.
-
Référencez la ressource.
Sur la page d'édition d'un nœud Shell standard, sous le nœud , recherchez la ressource
mc.pyassociée à l'option Insert Resource Path, cliquez dessus avec le bouton droit et sélectionnez Insert Resource Path.La ressource est désormais référencée dans l'éditeur de code :
##@resource_reference{"mc.py"} mc.py
-
-
Vérifiez le résultat.
Python 3
-
Modifiez le nœud Shell standard.
Dans le nœud Shell standard, ajoutez le chemin de l'interpréteur Python 3 :
##@resource_reference{"mc.py"} /home/tops/bin/python3 mc.py -
Cliquez sur l'icône
, sélectionnez un groupe de ressources et une image personnalisée, puis exécutez la tâche.################################# End run custom-script. ################################## This is a test text 2024-10-21 17:33:18 INFO ====================================================================== 2024-10-21 17:33:18 INFO Exit code of the Shell command 0 2024-10-21 17:33:18 INFO --- Invocation of Shell command completed --- 2024-10-21 17:33:18 INFO Shell run successfully! 2024-10-21 17:33:18 INFO Current task status: FINISH 2024-10-21 17:33:18 INFO Cost time is: 2.628s
Python 2
-
Modifiez le nœud Shell standard.
Dans le nœud Shell standard, ajoutez le chemin de l'interpréteur Python 2 :
##@resource_reference{"mc.py"} python mc.py -
Cliquez sur l'icône
, sélectionnez un groupe de ressources et une image personnalisée, puis exécutez la tâche.
-
Nœud Shell EMR
-
Créez une ressource.
-
Accédez à la page DataStudio.
Connectez-vous à la console DataWorks. Basculez vers la région cible et cliquez sur dans le volet de navigation de gauche. Dans la liste déroulante, sélectionnez l'espace de travail cible et cliquez sur Go to DataStudio.
-
Créez une ressource de type fichier EMR.
Sur la page DataStudio, cliquez avec le bouton droit sur le workflow cible et choisissez Create Resource. Dans le répertoire EMR, sélectionnez File. Sélectionnez un Storage path et cliquez sur Click Upload pour télécharger votre script local
emr.py. Exemple de contenu du script :Python 3
print('This is a test text')Python 2
print "This is a test text"RemarqueLe nom de la ressource
emr.pyest donné à titre d'exemple. Vous pouvez spécifier un nom adapté à vos besoins métier. Cliquez sur
pour valider la ressource.
-
-
Référencez la ressource.
-
Créez un nœud EMR Shell.
Sur la page DataStudio, cliquez avec le bouton droit sur le workflow cible et choisissez Create Node. Dans le répertoire EMR, sélectionnez EMR Shell.
-
Référencez la ressource de type fichier EMR.
Sur la page de configuration du nœud EMR Shell, recherchez la ressource
emr.pysous . Cliquez avec le bouton droit sur la ressource et sélectionnez Insert Resource Path.La ressource est désormais référencée dans l'éditeur de code :
##@resource_reference{"emr.py"} emr.py
-
-
Vérifiez le résultat.
Python 3
-
Modifiez le nœud EMR Shell.
Dans le nœud EMR Shell, ajoutez le chemin d'exécution de la commande Python 3
/home/tops/bin/python3.##@resource_reference{"emr.py"} /home/tops/bin/python3 emr.py -
Cliquez sur l'icône
, sélectionnez un groupe de ressources et une image personnalisée, puis exécutez la tâche.>>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Process start to execute... Process Output>>> This is a test text >>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Process is exited with exit value 0 >>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Command state update to COMPLETED >>> [2024-10-21 17:51:29][INFO ][CommandExecutor ]: Process execute finished >>> [2024-10-21 17:51:29][INFO ][EmrDccJobSubmitter ]: Job Completed, status=0 2024-10-21 17:51:29 INFO ============================================================ 2024-10-21 17:51:29 INFO Exit code of the Shell command 0 2024-10-21 17:51:29 INFO --- Invocation of Shell command completed --- 2024-10-21 17:51:29 INFO Shell run successfully! 2024-10-21 17:51:29 INFO Current task status: FINISH 2024-10-21 17:51:29 INFO Cost time is: 17.667s
Python 2
-
Modifiez le nœud EMR Shell.
Dans le nœud EMR Shell, ajoutez le chemin d'exécution
pythonpour la commande Python 2.##@resource_reference{"emr.py"} python emr.py -
Cliquez sur l'icône
, sélectionnez un groupe de ressources et une image personnalisée, puis exécutez la tâche.
-