

# Edición o carga de un script de trabajo
<a name="edit-nodes-script"></a>

Utilice el editor visual de AWS Glue Studio para editar el script de trabajo o cargar el propio.

Puede utilizar el editor visual para editar nodos de trabajo sólo si estos se crearon con AWS Glue Studio. Si el trabajo se creó con la consola de AWS Glue, a través de comandos de la API, o con la interfaz de línea de comandos (CLI), puede utilizar el editor de scripts en AWS Glue Studio para editar el script, los parámetros y la programación del trabajo. También puede editar el script para un trabajo creado en AWS Glue Studio mediante la conversión del trabajo a modo de sólo script.

**Para editar el script de trabajo o cargar su propio script**

1. Si crea un nuevo trabajo, en la página **Jobs (Trabajos)**, seleccione la opción **Spark script editor (Editor de scripts de Spark)** para crear un trabajo de Spark o elija la opción **Python Shell script editor (Editor de scripts de shell de Python)** para crear un trabajo de shell de Python. Puede escribir un nuevo script o cargar un script existente. Si elige **Spark script editor (Editor de scripts de Spark)**, puede escribir o cargar un script de Scala o Python. Si elige **Python Shell script editor (Editor de scripts de shell de Python)**, solo puede escribir o cargar un script de Python.

   Después de elegir la opción para crear un nuevo trabajo, en la sección **Options (Opciones)** que aparece, puede optar por comenzar con un script de inicio (**Create a new script with boilerplate code (Crear un nuevo script con código reutilizable**), o puede cargar un archivo local para utilizarlo como script de trabajo.

   Si elige **Spark script editor (Editor de scripts de Spark)**, puede cargar archivos de script de Scala o Python. Los scripts de Scala deben tener la extensión de archivo `.scala`. Los scripts de Python deben reconocerse como archivos de tipo Python. Si elige **Python Shell script editor (Editor de scripts de shell de Python)**, solo puede cargar archivos de script de Python.

   Cuando termine de tomar sus decisiones, elija **Create (Crear)** para crear el trabajo y abrir el editor visual.

1. Diríjase al editor visual de trabajos para el trabajo nuevo o guardado y, a continuación, elija la pestaña **Script**.

1. Si no creó un nuevo trabajo con una de las opciones del editor de script y nunca ha editado el script para un trabajo existente, la pestaña **Script** muestra el encabezado **Script (Locked) [Script (bloqueado)]**. Esto significa que el editor de scripts está en modo de solo lectura. Seleccione **Edit script (Editar script)** para desbloquear el script para su edición.

   Para poder editar el script, AWS Glue Studio convierte el trabajo de visual a de sólo script. Si desbloquea el script para editarlo, no podrá utilizar el editor visual para este trabajo después de guardarlo.

   En la ventana de confirmación, elija **Confirm (Confirmar)** para continuar o **Cancel (Cancelar)** para mantener el trabajo disponible para la edición visual.

   Si elige **Confirm (Confirmar)**, la pestaña **Visual** ya no aparecerá en el editor. Puede utilizar AWS Glue Studio para modificar el script mediante el editor de script, modificar los detalles o la programación del trabajo o ver las ejecuciones de trabajos.
**nota**  
La conversión a un trabajo de sólo script solo será permanente una vez que guarde el trabajo. Si actualiza la página web de la consola o cierra el trabajo antes de guardarlo y vuelve a abrirlo en el editor visual, podrá editar los nodos individuales en el editor visual.

1. Edite el script según sea necesario. 

   Cuando haya terminado de editar el script, elija **Save (Guardar)** para guardar el trabajo y convertir el trabajo de visual a sólo script de forma permanente.

1. (Opcional) Puede descargar el script desde la consola de AWS Glue Studio mediante el botón **Download** (Descargar) en la pestaña **Script**. Al seleccionar este botón, se abre una nueva ventana del navegador, que muestra el script desde su ubicación en Amazon S3. Los parámetros **Script filename (Nombre de archivo del script)** y **Script path (Ruta del script)** en la pestaña **Job details (Detalles del trabajo)** determinan el nombre y la ubicación del archivo de script en Amazon S3.   
![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/job-details-script-location-params-screenshot.png)

   Cuando guarda el trabajo, AWS Glue guarda el script de trabajo en la ubicación especificada por estos campos. Si modifica el archivo de script en esta ubicación dentro de Amazon S3, AWS Glue Studio cargará el script modificado la próxima vez que edite el trabajo.

## Creación y edición de scripts de Scala en AWS Glue Studio
<a name="edit-job-scala-script"></a>

Cuando elige el editor de script para crear un trabajo, de forma predeterminada, el lenguaje de programación de trabajo se establece en `Python 3`. Si elige escribir un nuevo script en lugar de cargarlo, AWS Glue Studio inicia un nuevo script con texto reutilizable escrito en Python. Si desea escribir un script de Scala en su lugar, primero debe configurar el editor de script para que utilice Scala.

**nota**  
Si elige Scala como lenguaje de programación para el trabajo y utiliza el editor visual para diseñar su trabajo, el script de trabajo generado se escribe en Scala y no es necesario realizar más acciones.

**Para escribir un nuevo script de Scala en AWS Glue Studio**

1. Cree un nuevo trabajo mediante la opción **Spark script editor (Editor de scripts de Spark)**.

1. En **Options (Opciones)**, elija **Create a new script with boilerplate code (Crear un nuevo script con código reutilizable)**.

1. Elija la pestaña **Job details (Detalles del trabajo)** y configure el **Languaje (Lenguaje)** a `Scala` (en lugar de `Python 3`).
**nota**  
La propiedad **Type (Tipo)** para el trabajo se configura automáticamente en `Spark` cuando elije la opción **Spark script editor (Editor de scripts de Spark)** para crear un trabajo. 

1. Elija la pestaña **Script**.

1. Elimine el texto reutilizable de Python. Puede reemplazarlo con el siguiente texto reutilizable de Scala.

   ```
   import com.amazonaws.services.glue.{DynamicRecord, GlueContext}
   import org.apache.spark.SparkContext
   import com.amazonaws.services.glue.util.JsonOptions
   import com.amazonaws.services.glue.util.GlueArgParser
   import com.amazonaws.services.glue.util.Job
   
   object MyScript {
     def main(args: Array[String]): Unit = {
       val sc: SparkContext = new SparkContext()
       val glueContext: GlueContext = new GlueContext(sc)
   
       }
   }
   ```

1. Escriba su script de trabajo de Scala en el editor. Agregue declaraciones `import` adicionales, según sea necesario.

## Creación y edición de trabajos de shell de Python en AWS Glue Studio
<a name="edit-job-python-shell"></a>

Cuando elige el editor de scripts de shell de Python para crear un trabajo, puede cargar un script de Python existente o escribir uno nuevo. Si elige escribir un nuevo script, se agrega código reutilizable al nuevo script de trabajo de Python. 

**Para crear un nuevo trabajo de shell de Python**  
Consulte las instrucciones en [Empezar trabajos en AWS Glue Studio](edit-nodes-chapter.md#create-jobs-start).

Las propiedades de trabajo que se soportan para los trabajos de shell de Python no son las mismas que las soportadas para los trabajos de Spark. La siguiente lista describe los cambios en los parámetros de trabajo disponibles para los trabajos de shell de Python en la pestaña **Job details (Detalles del trabajo)**.
+ La propiedad **Type (Tipo)** para el trabajo se establece automáticamente en `Python Shell` y no se puede cambiar. 
+ En lugar de **Language (Lenguaje)**, hay una propiedad **Python version (Versión de Python)** para el trabajo. Actualmente, los trabajos de shell de Python creados en AWS Glue Studio utilizan Python 3.6.
+ La propiedad **Glue version (Versión de Glue)** no está disponible, ya que no se aplica a trabajos de shell de Python.
+ En lugar de **Worker type (Tipo de empleado)** y **Number of workers (Número de empleados)**, se muestra una propiedad **Data processing units (Unidades de procesamiento de datos)**. Esta propiedad de trabajo determina cuántas unidades de procesamiento de datos (DPU) consume el shell de Python al ejecutar el trabajo.
+ La propiedad **Job bookmark (Marcador de trabajo)** no está disponible, porque no se soporta para trabajos de shell de Python.
+ En **Advanced properties (Propiedades avanzadas)**, las siguientes propiedades no están disponibles para trabajos de shell de Python.
  + **Métricas de trabajo**
  + **Registro continuo**
  + **Spark UI (Interfaz de usuario de Spark)** y **Spark UI logs path (Ruta de los registros de la interfaz de usuario de Spark)**
  + **Dependent jars path (Ruta de archivos JAR dependientes)**, en el encabezado **Libraries (Bibliotecas)**