DataWorks permite ejecutar scripts de Python en nodos shell. Este tema explica cómo ejecutar scripts de Python 2 y Python 3 en nodos shell comunes y nodos EMR Shell.
Contexto
DataWorks permite cargar scripts de Python como recursos. Posteriormente, puede especificar la ruta del intérprete para Python 2 o Python 3 en un nodo shell común o en un nodo EMR Shell y ejecutar el script mediante una referencia al recurso cargado.
Requisitos previos
Cumpla con los requisitos previos para usar un nodo EMR Shell. Para obtener más información, consulte Prerequisites for using an EMR Shell node.
Cumpla con los requisitos previos para usar un nodo shell común. Para obtener más información, consulte Prerequisites for using a common shell node.
-
Si su script de Python requiere paquetes de terceros, debe preparar el entorno en el resource group. El método depende del tipo de resource group:
serverless resource group (recomendado): instale paquetes de terceros mediante la gestión de imágenes. Para obtener más información, consulte Custom images.
exclusive resource group for scheduling: instale paquetes de terceros mediante O&M Assistant. Para obtener más información, consulte O&M Assistant.
NotaAl crear un paquete de terceros, asegúrese de que el tipo de paquete sea compatible tanto con
Python 2como conPython 3.
Límites
Para consultar los límites de los nodos EMR Shell, consulte Limits on EMR Shell nodes.
Para consultar los límites de los nodos shell comunes, consulte Limits on common shell nodes.
Ejecutar scripts de Python en nodos shell
DataWorks permite ejecutar scripts de Python haciendo referencia a recursos desde un nodo shell común o un nodo EMR Shell. Las rutas del intérprete varían según la versión de Python. Por ejemplo:
Python 2:
python xx.pyPython 3:
/home/tops/bin/python3 xx.py
Nodo shell común
-
Cree un recurso.
-
Vaya a la página DataStudio.
Inicie sesión en la consola de DataWorks. Cambie a la región objetivo y haga clic en en el panel de navegación izquierdo. En la lista desplegable, seleccione el espacio de trabajo objetivo y haga clic en Go to DataStudio.
-
Cree un recurso de Python de MaxCompute.
En la página DataStudio, haga clic con el botón derecho en el flujo de trabajo objetivo y elija Create Resource. En el directorio MaxCompute, seleccione el tipo de recurso Python y cree un recurso llamado
mc.py.NotaEl nombre del recurso
mc.pyes un ejemplo. Puede especificar un nombre según sus necesidades empresariales. -
Edite el recurso de Python de MaxCompute.
En la página de configuración del recurso, edite el código. Código de ejemplo:
Python 3
print('This is a test text')Python 2
print "This is a test text" Haga clic en
y en
para guardar y confirmar el recurso.
-
-
Haga referencia al recurso.
-
Cree un nodo shell común.
En la página DataStudio, haga clic con el botón derecho en el flujo de trabajo objetivo y elija Create Node. En el directorio General, seleccione Shell.
-
Haga referencia al recurso.
En la página de edición del nodo shell común, bajo el nodo , localice el elemento pendiente Insert Resource Path
mc.pyy haga clic con el botón derecho para seleccionar Insert Resource Path.El recurso ahora se encuentra referenciado en el editor de código:
##@resource_reference{"mc.py"} mc.py
-
-
Compruebe el resultado.
Python 3
-
Edite el nodo shell común.
En el nodo shell común, agregue la ruta del intérprete de Python 3:
##@resource_reference{"mc.py"} /home/tops/bin/python3 mc.py -
Haga clic en el icono
, seleccione un resource group y una imagen personalizada, y luego ejecute la tarea.################################# 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
-
Edite el nodo shell común.
En el nodo shell común, agregue la ruta del intérprete de Python 2:
##@resource_reference{"mc.py"} python mc.py -
Haga clic en el icono
, seleccione un resource group y una imagen personalizada, y luego ejecute la tarea.
-
Nodo EMR Shell
-
Cree un recurso.
-
Vaya a la página DataStudio.
Inicie sesión en la consola de DataWorks. Cambie a la región objetivo y haga clic en en el panel de navegación izquierdo. En la lista desplegable, seleccione el espacio de trabajo objetivo y haga clic en Go to DataStudio.
-
Cree un recurso EMR File.
En la página DataStudio, haga clic con el botón derecho en el flujo de trabajo objetivo y elija Create Resource. En el directorio EMR, seleccione File. Seleccione una Storage path y haga clic en Click Upload para cargar su script local
emr.py. Contenido de ejemplo del script:Python 3
print('This is a test text')Python 2
print "This is a test text"NotaEl nombre del recurso
emr.pyes un ejemplo. Puede especificar un nombre según sus necesidades empresariales. Haga clic en
para confirmar el recurso.
-
-
Haga referencia al recurso.
-
Cree un nodo EMR Shell.
En la página DataStudio, haga clic con el botón derecho en el flujo de trabajo objetivo y elija Create Node. En el directorio EMR, seleccione EMR Shell.
-
Haga referencia al recurso EMR File.
En la página de configuración del nodo EMR Shell, localice el recurso
emr.pybajo . Haga clic con el botón derecho en el recurso y seleccione Insert Resource Path.El recurso ahora se encuentra referenciado en el editor de código:
##@resource_reference{"emr.py"} emr.py
-
-
Compruebe el resultado.
Python 3
-
Edite el nodo EMR Shell.
En el nodo EMR Shell, agregue la ruta de ejecución del comando de Python 3:
/home/tops/bin/python3.##@resource_reference{"emr.py"} /home/tops/bin/python3 emr.py -
Haga clic en el icono
, seleccione un resource group y una imagen personalizada, y luego ejecute la tarea.>>> [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
-
Edite el nodo EMR Shell.
En el nodo EMR Shell, agregue la ruta de ejecución
pythonpara el comando de Python 2.##@resource_reference{"emr.py"} python emr.py -
Haga clic en el icono
, seleccione un resource group y una imagen personalizada, y luego ejecute la tarea.
-