

# Creación de trabajos de ETL visual
<a name="author-job-glue"></a>

## Creación de trabajos ETL visual con AWS Glue Studio
<a name="build-etl-jobs-glue-studio"></a>

 AWS Glue Studio proporciona una interfaz visual para crear, ejecutar y monitorear trabajos de extracción, transformación y carga (ETL) en AWS Glue. Un flujo de trabajo en AWS Glue es la lógica empresarial que lleva a cabo el flujo de trabajo de extracción, transformación y carga (ETL). Con AWS Glue Studio, puede componer visualmente flujos de trabajo de transformación de datos y ejecutarlos sin problemas en el motor de ETL sin servidor basado en Apache Spark de AWS Glue. Puede crear trabajos que muevan y transformen datos entre varios almacenes y flujos de datos mediante una opción de interfaz de arrastrar y soltar sin tener que aprender Spark ni escribir código. 

Un trabajo de AWS Glue encapsula un script que se conecta a los datos de origen, los procesa y, a continuación, los escribe en el destino de datos. Normalmente, un trabajo ejecuta scripts de extracción, transformación y carga (ETL). Los trabajos pueden ejecutar scripts diseñados para los entornos de tiempo de ejecución de Apache Spark y Ray. Los trabajos también pueden ejecutar scripts de Python de uso general (trabajos de shell de Python). Los desencadenadores de AWS Glue pueden iniciar trabajos en función de un programa o evento, o bajo demanda. Puede monitorear las ejecuciones de trabajos para comprender las métricas de tiempo de ejecución como el estado de realización, la duración y la hora de inicio.

Puede utilizar los scripts que genera AWS Glue o puede utilizar sus propios scripts. Si se cuenta con un esquema de origen y una ubicación o esquema de destino determinados, el generador de código de AWS Glue Studio puede crear automáticamente un script de la API de Apache Spark (PySpark). Puede utilizar este script como base y editarlo para satisfacer sus objetivos.

AWS Glue puede escribir archivos de salida en varios formatos de datos. Cada tipo de trabajo puede admitir diferentes formatos de salida. En algunos formatos de datos, se pueden escribir formatos de compresión comunes. 

### Administración de trabajos de AWS Glue en la consola de AWS
<a name="console-jobs"></a>

Para ver los trabajos existentes, inicie sesión en la Consola de administración de AWS y abra la consola de AWS Glue en [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/). Después, seleccione pestaña **Jobs (Trabajos)** en AWS Glue. En la lista **Jobs** (Trabajos) se muestra la ubicación del script que se asocia a cada flujo de trabajo, cuando el flujo de trabajo se modificó por última vez, y la opción de marcador de flujo de trabajo actual. 

 Puede crear trabajos en la sección **ETL** de la consola de AWS Glue. Al crear un nuevo trabajo o después de haberlo guardado, puede utilizar AWS Glue Studio para modificar los trabajos de ETL. Puede hacerlo mediante la edición de los nodos en el editor visual o al editar el script de trabajo en modo desarrollador. También puede agregar y eliminar nodos en el editor visual para crear trabajos de ETL más complejos. 

### Siguientes pasos para crear un trabajo en AWS Glue Studio
<a name="create-jobs-next"></a>

Utilice el editor visual de trabajos para configurar nodos para su trabajo. Cada nodo representa una acción, como leer datos de la ubicación de origen o aplicar una transformación a los datos. Cada nodo que agregue al trabajo tiene propiedades que proporcionan información sobre la ubicación o la transformación de los datos.

Los próximos pasos para crear y administrar sus trabajos son los siguientes:
+ [Inicio de trabajos de ETL visuales en AWS Glue Studio](edit-nodes-chapter.md)
+ [Ver el script de trabajo](managing-jobs-chapter.md#view-job-script)
+ [Modificar las propiedades del trabajo](managing-jobs-chapter.md#edit-jobs-properties)
+ [Guardar el trabajo](managing-jobs-chapter.md#save-job)
+ [Iniciar una ejecución de trabajo](managing-jobs-chapter.md#start-jobs)
+ [Ver información sobre las ejecuciones de trabajos recientes](managing-jobs-chapter.md#view-job-run-details)
+ [Acceso al panel de monitoreo de trabajos](view-job-runs.md#monitoring-accessing-dashboard)

## Creación de flujos de ETL visual con Amazon SageMaker
<a name="build-etl-jobs-smus"></a>

 Con un flujo de trabajo de Estudio unificado de Amazon SageMaker, puede configurar y ejecutar una serie de tareas en ese entorno. Los flujos de trabajo de Estudio unificado de Amazon SageMaker usan Apache Airflow para modelar los procedimientos de procesamiento de datos y orquestar los artefactos de código de Estudio unificado de Amazon SageMaker. Para obtener más información, consulte [Using workflows in Amazon SageMaker Unified Studio](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/workflow-orchestration.html). 

# Inicio de trabajos de ETL visuales en AWS Glue Studio
<a name="edit-nodes-chapter"></a>

Puede utilizar la interfaz visual simple en AWS Glue Studio para crear los trabajos de ETL. Se utiliza la página **Jobs (Trabajos)** para crear nuevos trabajos. También puede utilizar un editor de script o bloc de notas para trabajar en forma directa con el código en el script del trabajo de ETL de AWS Glue Studio.

En la página **Jobs** (Trabajos), puede ver todos los trabajos que ha creado con AWS Glue Studio o AWS Glue. Puede ver, administrar y ejecutar sus trabajos en esta página. 

 Consulte también el [tutorial del blog](https://aws.amazon.com/blogs/big-data/making-etl-easier-with-aws-glue-studio/) para ver otro ejemplo de cómo crear trabajos de ETL con AWS Glue Studio. 

## Empezar trabajos en AWS Glue Studio
<a name="create-jobs-start"></a>

 AWS Glue permite crear un trabajo a través de una interfaz visual, un cuaderno de códigos interactivo o con un editor de guiones. Puede iniciar un trabajo al hacer clic en cualquiera de las opciones o crear uno nuevo a partir de un trabajo de muestra. 

 Los trabajos de muestra crean un trabajo con la herramienta que usted elija. Por ejemplo, los trabajos de muestra permiten crear un trabajo ETL visual que combine archivos CSV en una tabla de catálogos, crear un trabajo en un cuaderno de códigos interactivo con AWS Glue para Ray o AWS Glue para Spark cuando trabaje con pandas o crear un trabajo en un cuaderno de códigos interactivo con SparkSQL. 

### Creación de un trabajo en AWS Glue Studio desde cero
<a name="create-jobs-start-from-scratch"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Glue Studio en [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/).

1.  En el panel de navegación, seleccione **Trabajos ETL**. 

1.  En la sección **Crear trabajo**, seleccione una opción de configuración para el trabajo.   
![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/sample-jobs.png)

    Opciones para crear un trabajo desde cero: 
   +  **Visual ETL**: autor en una interfaz visual centrada en el flujo de datos 
   +  **Autor mediante cuaderno de códigos interactivo**: cree trabajos de forma interactiva en una interfaz de cuaderno basada en cuadernos de Jupyter 

      Cuando selecciona esta opción, debe proporcionar información adicional antes de crear una sesión de creación de un cuaderno. Para conocer más acerca de cómo especificar esta información, consulte [Introducción a los cuaderno en AWS Glue Studio](notebook-getting-started.md). 
   + **Autor de código con un editor de guiones**: para aquellos que estén familiarizados con la programación y la escritura de guiones de ETL, elija esta opción a fin de crear un nuevo trabajo ETL de Spark. Elige el motor (Python shell, Ray, Spark (Python) o Spark (Scala). A continuación, seleccione **Comenzar de cero** o **Cargar guion** para cargar un guion existente desde un archivo local. Si elige utilizar el editor de script, no puede usar el editor visual para diseñar o editar el trabajo. 

     Un trabajo de Spark se ejecuta en un entorno Apache Spark administrado por AWS Glue. De forma predeterminada, los nuevos scripts están codificados en Python. Para escribir un nuevo script de Scala, consulte [Creación y edición de scripts de Scala en AWS Glue Studio](edit-nodes-script.md#edit-job-scala-script).

### Creación de un trabajo en AWS Glue Studio a partir de un ejemplo de trabajo
<a name="create-jobs-start-from-example-job"></a>

 Puede optar por crear un trabajo a partir de un trabajo de muestra. En **Trabajos de ejemplo**, seleccione un trabajo de ejemplo y, a continuación, seleccione **Crear un trabajo de muestra** para iniciar un trabajo de muestra. Al crear un trabajo de muestra a partir de una de las opciones, se proporciona una plantilla rápida con la que puede trabajar. 

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Glue Studio en [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/).

1.  En el panel de navegación, seleccione **Trabajos ETL**. 

1.  Seleccione una opción para crear un trabajo a partir de un trabajo de muestra: 
   +  **Trabajo de ETL visual para unir varios orígenes**: lea tres archivos CSV, combine los datos, cambie los tipos de datos y, a continuación, escriba los datos en Amazon S3 y catalóguelos para consultarlos más adelante. 
   +  **Cuaderno Spark con Pandas**: explore y visualice datos con el marco popular de Pandas combinado con Spark. 
   +  **Cuaderno Spark con SQL**: use SQL para empezar rápidamente con Apache Spark. Acceda a los datos a través del catálogo de datos de AWS Glue y transfórmelos con comandos conocidos. 

1. Seleccione **Crear un trabajo de muestra**.

# Características del editor de trabajo
<a name="job-editor-features"></a>

El editor de trabajos proporciona las siguientes características para crear y editar trabajos.
+ Diagrama visual de su trabajo, con un nodo para cada tarea de trabajo: nodos de origen de datos para leer los datos; nodos de transformación para modificar los datos; nodos de destino de datos para escribir los datos.

  Puede ver y configurar las propiedades de cada nodo en el diagrama de trabajo. También puede ver el esquema y los datos de ejemplo de cada nodo en el diagrama de trabajo. Estas características ayudan a comprobar que su trabajo está modificando y transformando los datos de la manera correcta, sin tener que ejecutar el trabajo.
+ Una pestaña Visualización y edición de scripts, donde puede modificar el código generado para su trabajo.
+ Una pestaña Detalles del trabajo, en la que puede configurar una variedad de opciones para personalizar el entorno en el que se ejecuta el trabajo de ETL de AWS Glue.
+ Una pestaña Ejecuciones, donde puede ver las ejecuciones actuales y anteriores del trabajo, ver el estado de la ejecución del trabajo y acceder a los registros de la ejecución del trabajo.
+ Una pestaña de calidad de datos, donde puede aplicar reglas de calidad de datos a su trabajo.
+ Una pestaña Programaciones, en la que puede configurar la hora de inicio del trabajo o configurar ejecuciones de trabajos recurrentes.
+ Una pestaña de Control de versiones, donde puede configurar un servicio de Git para usarlo en el trabajo.

## Uso de previsualizaciones de esquema en el editor visual de trabajos
<a name="schema-previews"></a>

Mientras crea o edita su trabajo, puede usar la pestaña **Esquema de salida** para ver el esquema de sus datos. 

Antes de ver el esquema, el editor de trabajos necesita permisos para acceder al origen de datos. Puede especificar un rol de IAM en la pestaña Detalles del trabajo del editor o en la pestaña **Esquema de salida** para un nodo. Si el rol de IAM tiene todos los permisos necesarios para acceder al origen de datos, puede ver el esquema en la pestaña **Esquema de salida** para un nodo.

## Uso de previsualizaciones de datos en el editor visual de trabajos
<a name="data-previews"></a>



[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/EqmljEWlp0c/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/EqmljEWlp0c)




Las previsualizaciones de datos ayudan a crear y probar su trabajo con una muestra de sus datos, sin tener que ejecutarlo varias veces. Al utilizar la vista previa de datos, puede:
+ Probar un rol de IAM para asegurarse de que tiene acceso a sus orígenes de datos o destinos de datos.
+ Comprobar que la transformación está modificando los datos de la forma deseada. Por ejemplo, si utiliza una transformación de filtro, puede asegurarse de que el filtro está seleccionando el subconjunto correcto de datos.
+ Comprobar sus datos. Si el conjunto de datos contiene columnas con valores de varios tipos, la previsualización de datos muestra una lista de tuplas para estas columnas. Cada tupla contiene el tipo de datos y su valor.

**nota**  
 Si utiliza una sesión de vista previa de datos y un nodo de código o SQL personalizado, la sesión de vista previa de datos ejecutará el SQL o el bloque de código tal cual está para todo el conjunto de datos. 

 Mientras crea o edita el trabajo, puede usar la pestaña **Previsualización de datos** debajo del lienzo del trabajo para ver una muestra de sus datos. Se iniciará automáticamente una nueva sesión de vista previa de datos cuando el rol ya esté configurado en el trabajo o cuando se haya configurado un rol de IAM predeterminado en la cuenta. Si un rol no se ha configurado previamente, puede iniciar una sesión seleccionándolo. 

**nota**  
 El rol que elija para la sesión de vista previa de datos también se usará para el trabajo. 



 Para ver el estado y el progreso de la sesión, así como los detalles de la sesión, haga clic en el icono de información. 

 Cuando la sesión esté lista, AWS Glue Studio cargará los datos del nodo que seleccionó. Puede ver el **porcentaje completado** a medida que avanza. 

![\[La captura de pantalla muestra la pestaña Previsualización de datos de un nodo iniciado.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preview-progress.png)


 A medida que vaya creando su trabajo visual, AWS Glue Studio actualizará automáticamente el esquema del nodo seleccionado cuando active la opción **Deducir el esquema de la sesión** en la pestaña **Esquema de salida**. 

![\[La captura de pantalla muestra la pestaña Previsualización de datos de un nodo iniciado.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preview-output-schema.png)


 Para configurar sus preferencias de vista previa de datos: 

Elija el ícono de configuración (un símbolo de engranaje) para configurar sus preferencias para las previsualizaciones de datos. Esta configuración se aplica a todos los nodos del diagrama de trabajo. Puede hacer lo siguiente: 
+ Elija ajustar el texto de una línea a la siguiente. Esta opción está habilitada de forma predeterminada
+ Cambie el número de filas (200 por defecto) 
+ Elija a un rol de IAM o cree un rol de IAM si es necesario
+ Elija iniciar automáticamente una nueva sesión al crear un trabajo. Esto aprovisiona una nueva sesión interactiva al crear trabajos. **Esta configuración se aplica en el nivel de la cuenta.** Una vez configurada, se aplicará a todos los usuarios de su cuenta al editar cualquier trabajo.
+ Elija la opción de inferir automáticamente el esquema. Se deducirán automáticamente los esquemas de salida para el nodo seleccionado
+ Elija importar bibliotecas de AWS Glue automáticamente. Esto resulta útil, ya que evitará que la vista previa de los datos reinicie nuevas sesiones al añadir nuevas transformaciones que requieran el reinicio de la sesión

 Las funciones adicionales incluyen la capacidad de: 
+ Elija el boton **Previsualización de x de y campos** para seleccionar las columnas (campos) que ds esea previsualizar. Al obtener una previsualización de los datos utilizando la configuración predeterminada, el editor de trabajos muestra las primeras cinco columnas del conjunto de datos. Puede cambiar esto para mostrar todos o ninguno (no recomendado). 
+ Desplazarse por la ventana de previsualización de datos en forma horizontal como vertical. 
+ Utilice el botón de maximizar para expandir la pestaña de Previsualización de datos y superponerla sobre el gráfico del trabajo para ver mejor los datos y las estructuras de datos. Del mismo modo, utilice el botón de minimizar para minimizar la pestaña de previsualización de datos. También puede agarrar el panel de control y arrastrarlo hacia arriba para expandir la pestaña de **Previsualización de datos**.  
![\[La captura de pantalla muestra el panel de previsualización de datos con los botones de minimizar y maximizar resaltados, así como el panel de control que puede usar para extender el panel de vista previa de datos verticalmente.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preview-maximize-handle.png)
+ Utilice **Finalizar sesión** para detener la vista previa de los datos. Al detener la sesión, puede elegir un nuevo rol de IAM y establecer ajustes adicionales (como activar o desactivar los ajustes para iniciar automáticamente una nueva sesión, deducir un esquema o importar bibliotecas AWS Glue e iniciar la sesión de nuevo).

## Restricciones al usar previsualizaciones de datos
<a name="data-preview-limits"></a>

Si utiliza las previsualizaciones de datos, podría encontrarse con las siguientes restricciones o limitaciones. 
+ La primera vez que elija la pestaña Previsualización de datos, deberá elegir un rol de IAM. Este rol debe tener los permisos correspondientes para acceder a los datos y otros recursos necesarios para crear las previsualizaciones de datos.
+ Después de proporcionar un rol de IAM, tarda un tiempo antes de que los datos estén disponibles para su visualización. Para conjuntos de datos con menos de 1 GB de datos, puede tardar hasta un minuto. Si tiene un conjunto de datos grande, debe usar particiones para mejorar el tiempo de carga. La carga de datos directamente desde Amazon S3 ofrece el mejor rendimiento.
+ Si tiene un conjunto de datos muy grande y tarda más de 15 minutos en consultar los datos para la previsualización de datos, se agotará el tiempo de espera de la solicitud. Las vistas previas de datos tienen un tiempo de espera de inactividad de 30 minutos. Para aliviar este problema, reduzca el tamaño del conjunto de datos que previsualizará.
+ De forma predeterminada, verá las primeras 50 columnas en la pestaña Previsualización de datos. Si las columnas no tienen valores de datos, recibirá un mensaje que indicará que no hay datos para mostrar. Puede aumentar el número de filas muestreadas o seleccionar columnas diferentes para ver los valores de los datos.
+ Actualmente, las previsualizaciones de datos no se soportan para orígenes de datos de streaming ni para orígenes de datos que utilizan conectores personalizados.
+ Los errores en un nodo afectan a todo el trabajo. Si un nodo tiene un error con las previsualizaciones de datos, el error aparecerá en todos los nodos hasta que lo corrija.
+ Si cambia un origen de datos para el trabajo, es posible que sea necesario actualizar los nodos secundarios de ese origen de datos para que coincidan con el nuevo esquema. Por ejemplo, si tiene un nodo ApplyMapping que modifica una columna y la columna no existe en el origen de datos de reemplazo, deberá actualizar el nodo de transformación ApplyMapping.
+ Si ve la pestaña Previsualización de datos de un nodo de transformación de consulta SQL y la consulta SQL utiliza un nombre de campo incorrecto, la pestaña Previsualización de datos muestra un error. 

## Generación de código de script
<a name="code-gen"></a>

Cuando se utiliza el editor visual para crear un trabajo, el código ETL se genera de forma automática. AWS Glue Studio crea un script de trabajo funcional y completo y lo guarda en una ubicación de Amazon S3.

Hay dos formas de código generadas por AWS Glue Studio: la versión original o clásica y una versión más nueva y optimizada. De forma predeterminada, el nuevo generador de código se utiliza para crear el script de trabajo. Puede generar un script de trabajo mediante el generador de código clásico en la pestaña **Script** al seleccionar el botón de alternar **Generar script clásico**.

Algunas de las diferencias en la nueva versión del código generado incluyen:
+ Ya no se agregan bloques de comentarios grandes al script
+ Las estructuras de salida del código utilizan el nombre de nodo que especifica en el editor visual. En el script de clase, las estructuras de salida se denominan tan solo `DataSource0`, `DataSource1`, `Transform0`, `Transform1`, `DataSink0`, `DataSink1` y así sucesivamente.
+ Los comandos largos se dividen en varias líneas para eliminar la necesidad de desplazarse por la página a fin de ver todo el comando.

Nuevas características en AWS Glue Studio requieren la nueva versión de generación de código y no funcionará con el script de código clásico. Se le pide que actualice estos trabajos cuando intente ejecutarlos.

# Transformación de datos con transformaciones administradas de AWS Glue
<a name="edit-jobs-transforms"></a>

 AWS Glue Studio ofrece dos tipos de transformaciones: 
+  **Transformaciones nativas de AWS Glue**: disponibles para todos los usuarios y administradas por AWS Glue. 
+  **Transformaciones visuales personalizadas**: le permiten cargar sus propias transformaciones para usarlas en AWS Glue Studio 

## Nodos de transformación de datos administrados por AWS Glue
<a name="edit-jobs-transforms-glue-managed"></a>

AWS Glue Studio proporciona un conjunto de transformaciones integradas que puede utilizar para procesar los datos. Sus datos pasan de un nodo en el diagrama de trabajo a otro en una estructura de datos denominada `DynamicFrame`, que es una extensión de un `DataFrame` de Apache Spark SQL.

En el diagrama rellenado previamente para un trabajo, entre el origen de datos y los nodos de destino de datos se encuentra el nodo de transformación **Cambiar esquema**. Puede configurar este nodo de transformación para modificar los datos o puede utilizar transformaciones adicionales. 

 dispone de las siguientes transformaciones integradas AWS Glue Studio:
+ **[ChangeSchema](transforms-configure-applymapping.md)**: asigne claves de propiedad de datos en el origen de datos a claves de propiedad de datos en el destino de datos. Puede cambiar el nombre de las claves, modificar los tipos de datos de las claves y elegir las claves que desea descartar del conjunto de datos.
+ **[SelectFields](transforms-configure-select-fields.md)** (Seleccionar campos): elija las claves de propiedad de datos que desee conservar.
+ **[DropFields](transforms-configure-drop-fields.md)** (Descartar campos): elija las claves de propiedad de datos que desee descartar.
+ **[RenameField](transforms-configure-rename-field.md)** (Renombrar campos): cambie el nombre de una sola clave de propiedad de datos.
+ **[Spigot](transforms-configure-spigot.md)**: escriba muestras de los datos en un bucket de Amazon S3.
+ **[Join](transforms-configure-join.md)** (Combinar): combine dos conjuntos de datos en uno mediante una frase de comparación en las claves de propiedad de datos especificadas. Puede utilizar combinaciones interna, externa, izquierda, derecha, semicombinación izquierda y anticombinación izquierda.
+ **[Unión](transforms-configure-union.md)**: combine filas de más de un origen de datos que tengan el mismo esquema.
+ **[SplitFields](transforms-configure-split-fields.md)** (Dividir campos): divida claves de propiedad de datos en dos `DynamicFrames`. La salida es una recopilación de `DynamicFrames`: uno con las claves de propiedad de datos seleccionadas y el otro con las claves de propiedad de datos restantes. 
+ **[SelectFromCollection](transforms-selectfromcollection-overview.md)** (Seleccionar desde recopilación): elija un `DynamicFrame` de una recopilación de `DynamicFrames`. El resultado es el seleccionado `DynamicFrame`.
+ **[FillMissingValues](transforms-configure-fmv.md)** (Completar valores faltantes): para localizar registros en el conjunto de datos que tienen valores faltantes y agregar un nuevo campo con un valor sugerido determinado por imputación
+ **[Filter](transforms-filter.md)** (Filtro): divida un conjunto de datos en dos, en función de una condición de filtro.
+  **[Eliminar campos nulos](transforms-dropnull-fields.md)**: elimina columnas del conjunto de datos si todos los valores de la columna son ‘nulos’. 
+  **[Eliminar duplicados](transforms-drop-duplicates.md)**: elimina las filas del origen de datos. Para ello, elija hacer coincidir filas enteras o especificar claves. 
+ **[SQL](transforms-sql.md)**: ingrese el código SparkSQL en un campo de entrada de texto para utilizar una consulta SQL a fin de transformar los datos. La salida es un único `DynamicFrame`. 
+  **[Agregación](transforms-aggregate-fields.md)**: realiza un cálculo (como el promedio, la suma, el mínimo o el máximo) en los campos y filas seleccionados y crea un nuevo campo con los valores calculados recientes. 
+ **[Aplanar](transforms-flatten.md)**: extrae los campos dentro de las estructuras en los campos de nivel superior.
+ **[UUID](transforms-uuid.md)**: agrega una columna con un Identificador único universal (UUID) para cada fila.
+ **[Identificador](transforms-identifier.md)**: agrega una columna con un identificador numérico para cada fila.
+ **[Para agregar una marca temporal](transforms-to-timestamp.md)**: convierta una columna al tipo de marca temporal.
+ **[Formato de marca temporal](transforms-format-timestamp.md)**: convierte una columna de marca temporal en una cadena formateada.
+ **[Transformación de Enrutador condicional](transforms-conditional-router.md)**: aplique múltiples condiciones a los datos entrantes. Cada fila de los datos entrantes se evalúa mediante una condición de filtro de grupo y se procesa en su grupo correspondiente. 
+  **[Transformación de concatenar columnas](transforms-concatenate-columns.md)**: cree una nueva columna de cadena. Para ello, utilice los valores de otras columnas con un espaciador opcional. 
+  **[Transformación de cadena dividida](transforms-split-string.md)**: divida una cadena en una matriz de tokens. Para ello, utilice una expresión regular para definir cómo se realiza la división. 
+  **[Transformación de matriz a columnas](transforms-array-to-columns.md)**: extraiga algunos o todos los elementos de una columna de tipo matriz en nuevas columnas. 
+  **[Agregar la transformación de marca de tiempo actual](transforms-add-current-timestamp.md)**: marque las filas con la hora a la que se procesaron los datos. Esto resulta útil para fines de auditoría o para realizar un seguimiento de la latencia en la canalización de datos. 
+  **[Transformación de filas dinámicas en columnas](transforms-pivot-rows-to-columns.md)**: agregue una columna numérica. Para ello, rote los valores únicos en las columnas seleccionadas para convertirlas en columnas nuevas. Si se seleccionan varias columnas, los valores se concatenan para dar nombre a las nuevas columnas. 
+  **[Transformación de columnas a filas](transforms-unpivot-columns-to-rows.md)**: convierta columnas en valores de nuevas columnas. Para ello, genere una fila para cada valor único. 
+  **[Transformación de procesamiento de equilibrio automático](transforms-autobalance-processing.md)**: redistribuya mejor los datos entre los trabajadores. Esto es útil cuando los datos están desequilibrados o cuando provienen del origen y no permiten un procesamiento paralelo suficiente. 
+  **[Transformación de columnas derivadas](transforms-derived-column.md)**: defina una nueva columna basándose en una fórmula matemática o expresión SQL en la que pueda utilizar otras columnas de los datos, así como constantes y literales. 
+  **[Transformación de búsqueda](transforms-lookup.md)**: agregue columnas de una tabla de catálogo definida cuando las claves coincidan con las columnas de búsqueda definidas en los datos. 
+  **[Transformación de matriz o mapa en filas](transforms-explode-array.md)**: extraiga valores de una estructura anidada en filas individuales que sean más fáciles de manipular. 
+  **[Transformación de coincidencia de registros](transforms-record-matching.md)**: invoque una transformación de clasificación de datos de machine learning de Record Matching existente. 
+  **[Transformación de eliminar filas nulas](transforms-remove-null-rows.md)**: elimine del conjunto de datos las filas que tengan todas las columnas nulas o vacías. 
+  **[Transformación de analizar columnas JSON](transforms-parse-json-column.md)**: analice una columna de cadena que contenga datos de JSON y conviértala en una columna de estructura o matriz, en función de si el JSON es un objeto o una matriz, respectivamente. 
+  **[Transformación de extraer la ruta JSON](transforms-extract-json-path.md)**: extraiga nuevas columnas de una columna de cadena JSON. 
+  **[Extraer fragmentos de cadenas de una expresión regular](transforms-regex-extractor.md)**: extraiga fragmentos de cadenas mediante una expresión regular y cree una nueva columna a partir de ella o varias columnas si utiliza grupos de expresiones regulares. 
+ **[Custom transform](transforms-custom.md)** (Transformación personalizada): ingrese un código en un campo de entrada de texto para utilizar transformaciones personalizadas. La salida es una recopilación de `DynamicFrames`. 

# Uso de una receta de preparación de datos en AWS Glue Studio
<a name="glue-studio-data-preparation"></a>

 La transformación de la **receta de preparación de datos** le permite crear una receta de preparación de datos desde cero mediante una interfaz de creación con estilo de cuadrícula interactiva. También le permite importar una receta de AWS Glue DataBrew existente y luego editarla en AWS Glue Studio. 

 El nodo **Receta de preparación de datos** está disponible en el panel de Recursos. Puede conectar el nodo **Receta de preparación de datos** a otro nodo del flujo de trabajo visual, ya sea un nodo de origen de datos u otro nodo de transformación. Tras elegir una receta de AWS Glue DataBrew y una versión, los pasos aplicados en la receta aparecen visibles en la pestaña de propiedades del nodo. 

## Requisitos previos
<a name="glue-studio-databrew-prerequisites"></a>
+  Si va a importar una receta de AWS Glue DataBrew, debe tener los permisos de IAM necesarios, tal y como se describe en [Importación de una receta de AWS Glue DataBrew en AWS Glue Studio](glue-studio-data-preparation-import-recipe.md). 
+  Debe crearse una sesión de vista previa de datos. 

## Limitaciones
<a name="glue-studio-databrew-limitations"></a>
+  Las recetas de AWS Glue DataBrew solo se admiten en las [regiones comerciales de DataBrew](https://docs.aws.amazon.com/general/latest/gr/databrew.html). 
+  No todas las recetas de AWS Glue DataBrew son compatibles con AWS Glue. Algunas recetas no se podrán ejecutar en AWS Glue Studio. 
  +  No se admiten recetas con transformaciones `UNION` y `JOIN`. Sin embargo, AWS Glue Studio ya cuenta con los nodos de transformación "Join" y "Union", que se pueden utilizar antes o después de un nodo de **receta de preparación de datos**. 
+  Los nodos de **Receta de preparación de datos** son compatibles con los trabajos que comiencen con la versión 4.0 de AWS Glue. Esta versión se seleccionará automáticamente después de agregar un nodo **Receta de preparación de datos** al trabajo. 
+  Los nodos de **Receta de preparación de datos** requieren Python. Esto se establece automáticamente cuando se agrega el nodo de **Receta de preparación de datos** al trabajo. 
+  Al agregar un nuevo nodo de **receta de preparación de datos** al gráfico visual, se reiniciará automáticamente la sesión de vista previa de datos con las bibliotecas correctas para usar el nodo de **receta de preparación de datos**. 
+  No se admiten las siguientes transformaciones para la importación o edición en un nodo de **receta de preparación de datos**: `GROUP_BY`, `PIVOT`, `UNPIVOT` y `TRANSPOSE`. 

## Características adicionales
<a name="glue-studio-data-preparation-recipe-transform-features"></a>

 Cuando haya seleccionado la transformación de la **receta de preparación de datos**, podrá realizar acciones adicionales después de elegir **Crear receta**. 
+  Agregar paso: puede agregar pasos adicionales a una receta según sea necesario seleccionando el icono de agregar paso o utilizar la barra de herramientas del panel de vista previa seleccionando una acción.   
![\[En la captura de pantalla se muestra el icono de Agregar receta.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/add-recipe-icon.png)  
![\[En la captura de pantalla se muestra el icono de Agregar receta.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-toolbar.png)
+  Importar receta: seleccione **Más** y luego **Importar receta** para usarla en el trabajo de AWS Glue Studio.   
![\[En la captura de pantalla se muestra el icono de Más.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preparation-recipe-node-more-icon.png)  
![\[En la captura de pantalla se muestra el icono de Más.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preparation-recipe-node-more-features.png)
+  Descargar como YAML: seleccione **Más** y luego **Descargar como YAML** para descargar la receta y guardarla fuera de AWS Glue Studio. 
+  Descargar como JSON: seleccione **Más** y luego **Descargar como JSON** para descargar la receta y guardarla fuera de AWS Glue Studio. 
+  Deshacer y rehacer los pasos de la receta: puede deshacer y rehacer los pasos de la receta en el panel de vista previa cuando trabaje con los datos de la cuadrícula.   
![\[En la captura de pantalla se muestra el icono de Más.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-toolbar-undo-redo.png)

# Creación y ejecución de recetas de preparación de datos en un trabajo de AWS Glue de ETL visual
<a name="glue-studio-data-preparation-recipe-transform-tutorial"></a>

 En este escenario, puede crear recetas de preparación de datos sin tener que crearlas primero en DataBrew. Antes de empezar a crear recetas, debe: 
+  Tener una sesión de vista previa de datos activa en ejecución. Cuando la sesión de vista previa de datos esté LISTA, la opción **Crear receta** se activará y podrá empezar a crear o editar la receta.   
![\[En la captura de pantalla se muestra la sesión de vista previa de datos como finalizada.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preparation-recipe-data-preview-complete.png)
+  Asegúrese de que la opción **Importar automáticamente bibliotecas de Glue** esté habilitada.   
![\[En la captura de pantalla se muestra la opción Importar automáticamente bibliotecas de Glue habilitada.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preparation-recipe-automatically-import-glue-libraries.png)

   Para ello, seleccione el icono con forma de engranaje en el panel de vista previa de datos.   
![\[En la captura de pantalla se muestra la opción Importar automáticamente bibliotecas de Glue habilitada.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preview-preferences.png)

**Creación de una receta de preparación de datos en AWS Glue Studio:**

1.  Agregue la transformación de la **receta de preparación de datos** a su lienzo de trabajo. La transformación debe estar conectada a un nodo principal del origen de datos. Al agregar el nodo de la **receta de preparación de datos**, el nodo se reiniciará con las bibliotecas adecuadas y verá que se está preparando el marco de datos.   
![\[En la captura de pantalla se muestra la carga del marco de datos tras agregar la receta de preparación de datos.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preparation-preparing-dataframe.png)

1.  Una vez que la sesión de vista previa de datos esté lista, los datos con los pasos aplicados anteriormente aparecerán en la parte inferior de la pantalla. 

1.  Elija **Crear receta**. Esto le permitirá empezar una nueva receta en AWS Glue Studio.   
![\[En la captura de pantalla se muestra el panel Transformar con los campos correspondientes al nombre y al nodo principal, así como la opción de crear una receta.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data-preparation-recipe-transform-tab-new.png)

1.  En el panel **Transformar**, situado a la derecha del lienzo de trabajo, ingrese un nombre para la receta de preparación de datos. 

1.  En el lado izquierdo, el lienzo se sustituirá por una vista de cuadrícula de los datos. A la derecha, el panel **Transformar** cambiará para mostrarle los pasos de la receta. Seleccione **Agregar paso** para agregar el primer paso a la receta.   
![\[En la captura de pantalla se muestra el panel Transformar después de elegir Agregar paso. Al elegir una columna, las opciones cambiarán de forma dinámica. Puede elegir ordenar, realizar una acción en la columna y filtrar los valores.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-preview-data-transform-panel.png)

1.  En el panel **Transformar**, puede elegir ordenar, realizar una acción en la columna y filtrar los valores. Por ejemplo, elija **Cambiar el nombre de la columna**.   
![\[En la captura de pantalla se muestra el panel Transformar después de elegir Agregar paso. Al elegir una columna, las opciones cambiarán de forma dinámica. Puede elegir ordenar, realizar una acción en la columna y filtrar los valores.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-add-step.png)

1.  En el panel Transformar de la derecha, las opciones para cambiar el nombre de una columna permiten elegir la columna de origen a la que se va a cambiar el nombre e ingresar el nombre de la nueva columna. Una vez que lo haya hecho, elija **Aplicar**. 

    Puede previsualizar cada paso, deshacer un paso y reordenar los pasos, así como utilizar cualquiera de los iconos de acción, como Filtrar, Ordenar, Dividir, Combinar, etc. Al realizar acciones en la cuadrícula de datos, los pasos se agregan a la receta en el panel Transformar.   
![\[En la captura de pantalla se muestra la cuadrícula de vista previa de datos con la barra de herramientas resaltada. Puede aplicar una acción con cualquiera de las herramientas y se agregará a la receta en el panel Transformar de la derecha.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-preview-data-grid.png)

    Si necesita hacer algún cambio, puede hacerlo en el panel de vista previa y así previsualizar el resultado de cada paso, deshacer un paso y reordenar los pasos. Por ejemplo: 
   +  Deshacer o rehacer un paso: para deshacer un paso, seleccione el icono de **Deshacer**. Puede repetir un paso seleccionando el icono de **Rehacer**.   
![\[En la captura de pantalla se muestra el icono de Más.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-toolbar-undo-redo.png)
   +  Reordenar el paso: cuando reordene un paso, AWS Glue Studio validará cada paso y le avisará si el paso no es válido. 

1.  Cuando haya aplicado un paso, el panel Transformar le mostrará todos los pasos de la receta. Puede borrar todos los pasos para volver a empezar, agregar más pasos seleccionando el icono de agregar o elegir **Finalizar la creación de la receta**.   
![\[En la captura de pantalla se muestra el panel Transformar con los pasos agregados a la receta. Cuando termine, seleccione Finalizar la creación de la receta o seleccione el icono de agregar para agregar más pasos a la receta.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/author-recipe-done-authoring-recipe.png)

1.  Seleccione **Guardar** en la parte superior derecha de la pantalla. Los pasos de la receta no se guardarán hasta que guarde el trabajo. 

# Importación de una receta de AWS Glue DataBrew en AWS Glue Studio
<a name="glue-studio-data-preparation-import-recipe"></a>

 En AWS Glue DataBrew, una receta es un conjunto de pasos de transformación de datos. Las recetas de AWS Glue DataBrew indican cómo transformar los datos que ya se han leído y no describen dónde y cómo leer datos, ni cómo y dónde escribirlos. Esto se configura en los nodos de origen y destino en AWS Glue Studio. Para obtener más información sobre las recetas, consulte [Creación y uso de recetas de AWS Glue DataBrew](https://docs.aws.amazon.com/databrew/latest/dg/recipes.html). 

 Para usar recetas de AWS Glue DataBrew en AWS Glue Studio, comience por crear recetas en AWS Glue DataBrew. Puede omitir este paso si ya dispone de las recetas que desea utilizar. 

## Permisos de IAM para AWS Glue DataBrew
<a name="glue-studio-databrew-permissions"></a>

 En este tema se proporciona información para ayudarle a comprender las acciones y los recursos que un administrador de IAM puede utilizar en una política de AWS Identity and Access Management (IAM) para la transformación de la receta de preparación de datos. 

 Para obtener información adicional sobre la seguridad en AWS Glue, consulte [Gestión de acceso](https://docs.aws.amazon.com/glue/latest/dg/security.html). 

**nota**  
 En la siguiente tabla, se enumeran los permisos que necesita un usuario para importar una receta de AWS Glue DataBrew existente. 


**Acciones de transformación de recetas de preparación de datos**  

| Action | Descripción | 
| --- | --- | 
| databrew:ListRecipes | Concede permiso para recuperar las recetas de AWS Glue DataBrew. | 
| databrew:ListRecipeVersions | Concede permiso para recuperar las versiones de una receta de AWS Glue DataBrew. | 
| databrew:DescribeRecipe | Concede permiso para recuperar la descripción de una receta de AWS Glue DataBrew. | 



 El rol que utilice para acceder a esta funcionalidad debe tener una política que permita varias acciones de AWS Glue DataBrew. Para ello, puede utilizar la política `AWSGlueConsoleFullAccess` que incluye las acciones necesarias o agregar la siguiente política integrada a su rol: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "databrew:ListRecipes",
        "databrew:ListRecipeVersions",
        "databrew:DescribeRecipe"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------



 Para utilizar la transformación de la receta de preparación de datos, debe agregar la acción de `IAM:PassRole` a la política de permisos. 


**Permisos necesarios adicionales**  

| Action | Descripción | 
| --- | --- | 
| iam:PassRole | Otorga permiso a IAM para que el usuario pueda pasar las funciones aprobadas. | 

Sin estos permisos, se produce el siguiente error:

```
"errorCode": "AccessDenied"
"errorMessage": "User: arn:aws:sts::account_id:assumed-role/AWSGlueServiceRole is not 
authorized to perform: iam:PassRole on resource: arn:aws:iam::account_id:role/service-role/AWSGlueServiceRole 
because no identity-based policy allows the iam:PassRole action"
```



## Importación de una receta de AWS Glue DataBrew
<a name="glue-studio-databrew-import-steps"></a>

**Importación de una receta de AWS Glue DataBrew y utilización en AWS Glue Studio:**

 Si ya tiene un nodo de **receta de preparación de datos** y quiere editar los pasos de la receta directamente en AWS Glue Studio, tendrá que importar los pasos de la receta a su trabajo de AWS Glue Studio. 

1.  Inicie un trabajo de AWS Glue en AWS Glue Studio con un origen de datos. 

1.  Agregue el nodo **Receta de preparación de datos** al lienzo de trabajo.   
![\[La captura de pantalla muestra el modal de nodo Agregar con la receta de preparación de datos disponible para su selección.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/glue-add-node-data-preparation-recipe.png)

1.  En el panel Transformar, escriba un nombre para la receta. 

1.  Para elegir uno o más nodos principales, seleccione los nodos disponibles en el lienzo en la lista desplegable. 

1.  Elija **Crear receta**. Si **Crear receta** está en gris, no estará disponible hasta que se hayan seleccionado los nodos principales y se haya completado una sesión de vista previa de datos.   
![\[Author Data Preparation Recipe form with name field and node parents selection dropdown.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/glue-author-data-preparation-recipe.png)

1.  El marco de datos se carga y muestra información detallada sobre los datos de origen. 

    Seleccione el icono de **más acciones** y elija **Importar receta**.   
![\[Data preparation interface showing "Build your Recipe" with an "Add step" button.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/glue-dataframe-import-recipe.png)

1.  Use el asistente de importación de recetas para completar los pasos. En el paso 1, busque su receta, selecciónela y elija **Siguiente**.   
![\[Import recipe interface showing two recipes, with one selected for import.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/import-recipe-step-1.png)

1.  En el paso 2, elija sus opciones de importación. Puede agregar una nueva receta a una receta existente o sobrescribir una receta existente. Elija **Siguiente**.   
![\[Import recipe interface showing selected recipe, version, and two imported steps.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/import-recipe-step-2.png)

1.  En el paso 3, valide los pasos de la receta. Una vez que haya importado la receta de AWS Glue DataBrew, podrá editarla directamente en AWS Glue Studio.   
![\[Recipe import interface showing two steps and a validation progress indicator.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/import-recipe-step-3.png)  
![\[Import recipe interface showing validated steps for sorting and formatting data.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/import-recipe-step-3-validated-2.png)

1.  Después de esto, los pasos se importarán como parte del trabajo de AWS Glue. Realice los cambios de configuración necesarios en la pestaña **Detalles del trabajo**, como asignarle un nombre al trabajo y ajustar la capacidad asignada según sea necesario. Seleccione **Guardar** para guardar el trabajo y la receta. 
**nota**  
 JOIN, UNION, GROUP\$1BY, PIVOT, UNPIVOT y TRANSPOSE no son compatibles con la importación de recetas ni estarán disponibles en el modo de creación de recetas. 

1.  Opcionalmente, puede terminar de crear el trabajo agregando otros nodos de transformación según sea necesario y agregando los nodos de destino de datos. 

    Si reordena los pasos después de importar una receta, AWS Glue realiza una validación de esos pasos. Por ejemplo, si cambiara el nombre de una columna y, a continuación, la eliminara, y moviera el paso de eliminación a la parte superior, el paso de cambio de nombre no sería válido. A continuación, puede editar los pasos para corregir el error de validación. 

# Migración desde AWS Glue DataBrew a AWS Glue Studio
<a name="databrew-migration-to-glue-studio"></a>

 Si tiene recetas en AWS Glue DataBrew, use la siguiente lista de verificación para migrar sus recetas a AWS Glue Studio. 


| Si desea... | Haga esto | 
| --- | --- | 
|  Permitir que los usuarios recuperen recetas de AWS Glue DataBrew, versiones de recetas y descripciones de recetas.  |  Agregue permisos de IAM a una política que le permita a su rol acceder a las acciones necesarias. Consulte [Permisos de IAM para AWS Glue DataBrew](glue-studio-data-preparation-import-recipe.md#glue-studio-databrew-permissions).  | 
|  Importar una receta de AWS Glue DataBrew existente a AWS Glue Studio.  |  Siga los pasos de [Importación de una receta de AWS Glue DataBrew](glue-studio-data-preparation-import-recipe.md#glue-studio-databrew-import-steps).  | 
|  Importar una receta con JOIN y UNION.  |  No se admiten recetas con transformaciones UNION ni JOIN. Use las transformaciones Join y Union en AWS Glue Studio antes o después de un nodo de receta de preparación de datos.  | 

# Uso de Cambiar esquema para reasignar claves de propiedades de datos
<a name="transforms-configure-applymapping"></a>

Una transformación *Cambiar esquema* vuelve a mapear las claves de propiedad de datos de origen en la configuración deseada para los datos de destino. En un nodo de transformación de Cambiar esquema, puede:
+ Cambiar el nombre de varias claves de propiedad de datos.
+ Cambiar el tipo de datos de las claves de propiedad de datos, si se soporta el nuevo tipo de datos y existe una ruta de transformación entre los dos tipos de datos.
+ Elegir un subconjunto de claves de propiedad de datos al indicar las claves de propiedad de datos que desea descartar.

Puede agregar nodos *Cambiar esquema* adicionales al diagrama de trabajo según sea necesario, por ejemplo, para modificar orígenes de datos adicionales o luego de una transformación *Join*. 

## Uso de Cambiar esquema con un tipo de datos decimal
<a name="transforms-configure-applymapping-decimal-datatype"></a>

 Cuando se utiliza la transformación **Cambiar esquema** con un tipo de datos decimal, la transformación **Cambiar esquema** modifica la precisión al valor predeterminado de (10,2). Para modificarlo y establecer la precisión para su caso de uso, puede usar la transformación **Consulta SQL** y moldear las columnas con una precisión específica. 

 Por ejemplo, si tiene una columna de entrada llamada “DecimalCol” de tipo Decimal y desea reasignarla a una columna de salida llamada “OutputDecimalCol” con una precisión específica de (18,6), debería: 

1.  Agregar una transformación **Consulta SQL** posterior a la transformación **Cambiar esquema**. 

1.  En la transformación **Consulta SQL**, utilice una consulta SQL para convertir la columna reasignada con la precisión deseada. La consulta SQL debería tener el siguiente aspecto: 

   ```
   SELECT col1, col2, CAST(DecimalCol AS DECIMAL(18,6)) AS OutputDecimalCol
   FROM __THIS__
   ```

    En la consulta SQL anterior: 
   +  “col1” y “col2” son otras columnas de sus datos que desea revisar sin modificarlas. 
   +  “DecimalCol” es el nombre de la columna original de los datos de entrada. 
   +  “CAST(DecimalCol AS DECIMAL(18,6))” convierte “DecimalCol” en un tipo decimal con una precisión de 18 dígitos y 6 decimales. 
   +  “AS OutputDecimalCol” cambia el nombre de la columna convertida a “OutputDecimalCol”. 

 Al utilizar la transformación **Consulta SQL**, puede anular la precisión predeterminada establecida por la transformación **Cambiar esquema** y convertir explícitamente las columnas decimales con la precisión deseada. Este enfoque le permite aprovechar la transformación **Cambiar esquema** para cambiar el nombre y reestructurar los datos y, al mismo tiempo, administrar los requisitos de precisión de las columnas decimales durante la posterior transformación **Consulta SQL**. 

## Agregación de un nodo de transformación Cambiar esquema al diagrama de trabajo
<a name="transforms-configure-applymapping-add-to-job"></a>

**nota**  
La transformación **Cambiar esquema** no distingue mayúsculas de minúsculas.

**Para agregar un nodo de transformación de Cambiar esquema al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **Change Schema** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña Propiedades del nodo, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transformación** en el panel de detalles del nodo.

1. Modifique el esquema de entrada:
   + Para cambiar el nombre de una clave de propiedad de datos, escriba el nuevo nombre de la clave en el campo **Target key (Clave de destino)**.
   + Para cambiar el tipo de datos de una clave de propiedad de datos, elija el tipo de datos nuevo para la clave de la lista **Data type (Tipo de datos)**.
   + Para eliminar una clave de propiedad de datos del esquema de destino, seleccione la casilla **Drop (Descartar)** para esa clave.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Uso de Eliminar duplicados
<a name="transforms-drop-duplicates"></a>

 La transformación Eliminar duplicados elimina las filas del origen de datos ofreciéndole dos opciones. Puede eliminar la fila duplicada que sea completamente igual o elegir los campos que desee que coincidan y eliminar solo las filas en función de los campos que haya elegido. 

 Por ejemplo, en este conjunto de datos, tiene filas duplicadas en las que todos los valores de algunas filas son exactamente iguales a los de otra fila y algunos de los valores de las filas son iguales o diferentes. 


| Fila | Nombre | Correo electrónico | Edad | Estado | Nota | 
| --- | --- | --- | --- | --- | --- | 
| 1 | Alegría | alegría@gmail | 33 | NY |  | 
| 2 | Tim | tim@gmail | 45 | OH |  | 
| 3 | Rosa | rosa@gmail | 23 | NJ |  | 
| 4 | Tim | tim@gmail | 42 | OH |  | 
| 5 | Rosa | rosa@gmail | 23 | NJ |  | 
| 6 | Tim | tim@gmail | 42 | OH | se trata de una fila duplicada y coincide completamente con todos los valores de la fila \$14 | 
| 7 | Rosa | rosa@gmail | 23 | NJ | Se trata de una fila duplicada y coincide completamente con todos los valores de la fila \$15 | 

 Si opta por hacer coincidir filas enteras, las filas 6 y 7 se eliminarán del conjunto de datos. El conjunto de datos ahora es el siguiente: 


| Fila | Nombre | Correo electrónico | Edad | Estado | 
| --- | --- | --- | --- | --- | 
| 1 | Alegría | alegría@gmail | 33 | NY | 
| 2 | Tim | tim@gmail | 45 | OH | 
| 3 | Rosa | rosa@gmail | 23 | NJ | 
| 4 | Tim | tim@gmail | 42 | OH | 
| 5 | Rosa | rosa@gmail | 23 | NJ | 

 Si opta por especificar las claves, puede optar por eliminar las filas que coincidan con las palabras “nombre” y “correo electrónico”. Esto permite controlar mejor qué es una “fila duplicada” para el conjunto de datos. Al especificar “nombre” y “correo electrónico”, el conjunto de datos ahora es el siguiente: 


| Fila | Nombre | Correo electrónico | Edad | Estado | 
| --- | --- | --- | --- | --- | 
| 1 | Alegría | alegría@gmail | 33 | NY | 
| 2 | Tim | tim@gmail | 45 | OH | 
| 3 | Rosa | rosa@gmail | 23 | NJ | 



 Algunas cosas a tener en cuenta: 
+  Para que las filas se reconozcan como duplicadas, los valores distinguen entre mayúsculas y minúsculas. Todos los valores de las filas deben tener las mismas mayúsculas y minúsculas; esto se aplica a cualquier opción que elija (hacer coincidir filas enteras o Especificar claves). 
+  Todos los valores se leen como cadenas. 
+  La transformación **Eliminar duplicados** utiliza el comando dropDuplicates de Spark. 
+  Cuando se utiliza la transformación **Eliminar duplicados**, la primera fila se mantiene y las demás filas se eliminan. 
+  La transformación **Eliminar duplicados** no cambia el esquema del marco de datos. Si decide especificar claves, todos los campos se mantienen en el marco de datos resultante. 

# Uso de SelectFields (Seleccionar campos) para eliminar la mayoría de las claves de propiedad de datos
<a name="transforms-configure-select-fields"></a>

Puede crear un subconjunto de claves de propiedad de datos a partir del conjunto de datos mediante la transformación *Seleccionar campos*. Indique qué claves de propiedad de datos desea conservar y el resto se eliminan del conjunto de datos.

**nota**  
La transformación *Seleccionar campos* distingue entre mayúsculas y minúsculas. Use *ApplyMapping (Aplicar mapeo)* si necesita una forma que no distinga entre mayúsculas y minúsculas para seleccionar campos.

**Para agregar un nodo de transformación Seleccionar campos al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **SelectFields** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)** en el panel de detalles del nodo.

1. En el encabezado **SelectFields (Seleccionar campos)** elija las claves de propiedad de datos en el conjunto de datos que desea conservar. Las claves de propiedad de datos no seleccionadas se descartan del conjunto de datos.

   También puede seleccionar la casilla junto al encabezado de la columna **Field (Campo)** para elegir automáticamente todas las claves de propiedad de datos en el conjunto de datos. Luego, puede anular la selección de claves de propiedad de datos individuales para eliminarlas del conjunto de datos.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Uso de DropFields (Descartar campos) para mantener la mayoría de las claves de propiedad
<a name="transforms-configure-drop-fields"></a>

Puede crear un subconjunto de claves de propiedad de datos a partir del conjunto de datos mediante la transformación *Descartar campos*. Indique qué claves de propiedad de datos desea eliminar del conjunto de datos y el resto de las claves se conservan.

**nota**  
La transformación *Descartar campos* distingue entre mayúsculas y minúsculas. Use *Cambiar esquema* si necesita una forma insensible a mayúsculas y minúsculas para seleccionar campos.

**Para agregar un nodo de transformación Descartar campos al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **DropFields** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)** en el panel de detalles del nodo.

1. En el encabezado **DropFields (Descartar campos)**, elija las claves de propiedad de datos que desea descartar del origen de datos.

   También puede seleccionar la casilla junto al encabezado de la columna **Field (Campo)** para elegir automáticamente todas las claves de propiedad de datos en el conjunto de datos. Luego, puede anular la selección de claves de propiedad de datos individuales para que se conserven en el conjunto de datos.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Cambio de nombre de un campo en el conjunto de datos
<a name="transforms-configure-rename-field"></a>

Puede utilizar la transformación *RenameField (Renombrar campo)* para cambiar el nombre de una clave de propiedad individual en el conjunto de datos. 

**nota**  
La transformación *Renombrar campo* distingue entre mayúsculas y minúsculas. Use *ApplyMapping (Aplicar mapeo)* si necesita una transformación que no distinga entre mayúsculas y minúsculas.

**sugerencia**  
Si utiliza la transformación *Cambiar Esquema*, puede cambiar el nombre de varias claves de propiedad de datos en el conjunto de datos con una única transformación.

**Para agregar un nodo de transformación Renombrar campo al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **RenameField** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)**.

1. En el encabezado **Data field (Campo de datos)**, elija una clave de propiedad de los datos de origen y, a continuación, escriba un nuevo nombre en el cuadro **New field name (Nombre de campo nuevo)**. 

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Uso de Spigot para tomar muestras del conjunto de datos
<a name="transforms-configure-spigot"></a>

Para probar las transformaciones realizadas por el trabajo, es posible que desee obtener una muestra de los datos para comprobar que la transformación funciona según lo previsto. La transformación *Spigot* escribe un subconjunto de registros del conjunto de datos en un archivo JSON en un bucket de Amazon S3. El método de muestreo de datos puede ser un número especificado de registros del principio del archivo o un factor de probabilidad utilizado para elegir los registros.

**Para agregar un nodo de transformación Spigot al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **Spigot** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)** en el panel de detalles del nodo.

1. Escriba una ruta de Amazon S3 o elija **Browse S3 (Examinar S3)** para elegir una ubicación en Amazon S3. Esta es la ubicación donde el trabajo escribe el archivo JSON que contiene la muestra de datos.

1. Ingrese la información para el método de muestreo. Puede especificar un valor para **Number of records (Número de registros)** que se escribirá desde el principio del conjunto de datos y un **Probability threshold (Umbral de probabilidad)** (que se ingresa como un valor decimal con un valor máximo de 1) para seleccionar cualquier registro determinado. 

   Por ejemplo, para escribir los primeros 50 registros del conjunto de datos, debe establecer **Number of records** en 50 y **Probability threshold** en 1 (100 %).

# Combinación de conjuntos de datos
<a name="transforms-configure-join"></a>

La transformación *Join (Combinación)* le permite combinar dos conjuntos de datos en uno. Especifique los nombres de clave en el esquema de cada conjunto de datos que desea comparar. El `DynamicFrame` de salida contiene las filas donde las claves cumplen la condición de combinación. Las filas de cada conjunto de datos que cumplen con la condición de combinación se combinan en una sola fila en el `DynamicFrame` de salida que contiene todas las columnas encontradas en cualquiera de los conjuntos de datos.

**Para agregar un nodo de transformación de combinación al diagrama de trabajo**

1. Si sólo hay un origen de datos disponible, debe agregar un nuevo nodo de origen de datos al diagrama de trabajo.

1. Elija uno de los nodos de origen para la combinación. Abra el panel de recursos y, a continuación, elija **Unir** para agregar una nueva transformación al diagrama de trabajo.

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo.

1. En la pestaña **Node properties (Propiedades del nodo)**, en el encabezado **Node parents (Nodos principales)**, agregue un nodo principal para que haya dos conjuntos de datos que proporcionen entradas para la combinación. El principal puede ser un nodo de origen de datos o un nodo de transformación. 
**nota**  
Una combinación sólo puede tener dos nodos principales.

1. Elija la pestaña **Transform (Transformación)**.

   Si aparece un mensaje que indica que hay nombres de clave conflictivos, puede:
   + Seleccionar **Resolve it (Resolver)** para agregar automáticamente un nodo de transformación *ApplyMapping (Aplicar mapeo)* en el diagrama de trabajo. El nodo Aplicar mapeo agrega un prefijo a cualquier clave del conjunto de datos que tenga el mismo nombre que una clave del otro conjunto de datos. Por ejemplo, si utiliza el valor predeterminado de **right**, cualquier clave en el conjunto de datos derecho que tenga el mismo nombre que una clave en el conjunto de datos izquierdo cambiará de nombre a `(right)key name`.
   + Agregue manualmente un nodo de transformación con anterioridad en el diagrama de trabajo para eliminar o cambiar el nombre de las claves en conflicto.

1. Elija el tipo de combinación en la lista **Join type (Tipo de combinación)**. 
   + **Inner join (Combinación interna)**: devuelve una fila con columnas de ambos conjuntos de datos para cada coincidencia basada en la condición de combinación. Las filas que no satisfacen la condición de combinación no se devuelven.
   + **Left join (Combinación izquierda)**: todas las filas del conjunto de datos izquierdo y solo las filas del conjunto de datos derecho que satisfacen la condición de combinación. 
   + **Right join (Combinación derecha)**: todas las filas del conjunto de datos derecho y solo las filas del conjunto de datos izquierdo que satisfacen la condición de combinación.
   + **Outer join (Combinación externa)**: todas las filas de ambos conjuntos de datos.
   + **Left semi join (Semicombinación izquierda)**: todas las filas del conjunto de datos izquierdo que tienen una coincidencia en el conjunto de datos derecho en función de la condición de combinación. 
   + **Left anti join (Anticombinación izquierda)**: todas las filas del conjunto de datos izquierdo que no tienen una coincidencia en el conjunto de datos derecho en función de la condición de combinación. 

1. En la pestaña **Transform (Transformación)**, en el encabezado **Join conditions (Condiciones de combinación)**, elija **Add condition (Agregar condición)**. Elija una clave de propiedad de cada conjunto de datos para comparar. Las claves de propiedad en el lado izquierdo del operador de comparación se conocen como el conjunto de datos izquierdo y las claves de propiedad de la derecha se denominan conjunto de datos derecho. 

   Para condiciones de combinación más complejas, puede agregar claves coincidentes adicionales al seleccionar **Add condition (Agregar condición)** más de una vez. Si agrega una condición por accidente, puede elegir el ícono de eliminación (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/delete-icon-black.png)) para eliminarla.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

Para obtener un ejemplo del esquema de salida de combinación, considere una combinación entre dos conjuntos de datos con las siguientes claves de propiedad:

```
Left: {id, dept, hire_date, salary, employment_status}
Right: {id, first_name, last_name, hire_date, title}
```

La combinación está configurada para que coincida en las claves `id` y `hire_date` mediante el operador de comparación `=`. 

Debido a que ambos conjuntos de datos contienen claves `id` y `hire_date`, debe elegir **Resolve it (Resolver)** para agregar automáticamente el prefijo **right** a las claves del conjunto de datos correcto. 

Las claves en el esquema de salida serían:

```
{id, dept, hire_date, salary, employment_status, 
(right)id, first_name, last_name, (right)hire_date, title}
```

# Uso de Unión para combinar filas
<a name="transforms-configure-union"></a>

 El nodo de transformación Unión se utiliza cuando se desean combinar filas de más de un origen de datos que tienen el mismo esquema. 

 Existen dos tipos de transformaciones de Unión: 

1. ALL: al aplicar ALL, la unión resultante no elimina filas duplicadas.

1. DISTINCT: al aplicar DISTINTO, la unión resultante elimina las filas duplicadas.

 **Uniones versus Combinaciones** 

 Se usa Union para combinar filas. Se utiliza Combinar para combinar columnas. 

**Uso de la transformación Unión en el lienzo de Visual ETL**

1.  Agregue más de un origen de datos para realizar una transformación de unión. Para agregar un origen de datos, abra el panel de recursos y, a continuación, elija el origen de datos en la pestaña Fuentes. Antes de usar la transformación de Unión, debe asegurarse de que todos los orígenes de datos involucradas en la unión tengan el mismo esquema y estructura. 

1.  Si tiene al menos dos orígenes de datos que desee combinar mediante la transformación Unión, cree la transformación Unión al agregarla al lienzo. Abre el panel de recursos en el lienzo y busca “Unión”. También puedes elegir la pestaña Transformaciones del panel de recursos y desplazarte hacia abajo hasta encontrar la transformación de Unión y, a continuación, elegir **Unión.** 

1. Seleccione el nodo Unión en el lienzo de trabajo. En la ventana de propiedades del nodo, elija los nodos principales para conectarse a la transformación de Unión.

1. AWS Glue comprueba la compatibilidad para garantizar que la transformación de Unión se pueda aplicar a todas los orígenes de datos. Si el esquema de los orígenes de datos es el mismo, se permitirá la operación. Si los orígenes de datos no tienen el mismo esquema, aparece un mensaje de error no válido: “Los esquemas de entrada de esta unión no son los mismos. Considere la posibilidad de utilizar ApplyMapping para que coincida con los esquemas”. Para solucionar este problema, selecciona utilizar **ApplyMapping**. 

1. Seleccione el tipo de Unión.

   1. Todas: de forma predeterminada, se selecciona el tipo de unión Todas; esto resultará en filas duplicadas si las hay en la combinación de datos.

   1. Distinto: elija Distinto si desea eliminar las filas duplicadas de la combinación de datos resultante.

# Uso de SplitFields (Dividir campos) para dividir un conjunto de datos en dos
<a name="transforms-configure-split-fields"></a>

La transformación *SplitFields (Dividir campos)* le permite elegir algunas de las claves de propiedad de datos en el conjunto de datos de entrada para ponerlas en un conjunto de datos y colocar las claves no seleccionadas en otro conjunto de datos independiente. La salida de esta transformación es una recopilación de `DynamicFrames`.

**nota**  
Debe utilizar la transformación *SelectFromCollection (Seleccionar desde la recopilación)* para convertir la recopilación de `DynamicFrames` en un solo `DynamicFrame` antes de enviar la salida a una ubicación de destino.

La transformación *Dividir campos* distingue entre mayúsculas y minúsculas. Agregue una transformación *ApplyMapping (Aplicar mapeo)*como nodo principal si necesita nombres de clave de propiedad que no distingan entre mayúsculas y minúsculas.

**Para agregar un nodo de transformación Dividir campos al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **SplitFields** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)**.

1. Elija las claves de propiedad que desea poner en el primer conjunto de datos. Las claves que no elija se colocan en el segundo conjunto de datos.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

1. Configure un nodo de transformación *SelectFromCollection (Seleccionar desde la recopilación)* para procesar los conjuntos de datos resultantes.

# Información general de la transformación *SelectFromCollection*
<a name="transforms-selectfromcollection-overview"></a>

Algunas transformaciones tienen múltiples conjuntos de datos como salida en lugar de un único conjunto de datos, por ejemplo, *Dividir campos*. La transformación *Seleccionar desde recopilación* selecciona un conjunto de datos (`DynamicFrame`) desde una recopilación de conjuntos de datos (una matriz de `DynamicFrames`). El resultado de la transformación es el seleccionado `DynamicFrame`. 

Debe utilizar esta transformación después de utilizar una transformación que crea una recopilación de `DynamicFrames`, por ejemplo:
+ Transformaciones de código personalizado
+ *SplitFields*

Si no agrega un nodo de transformación *Seleccionar desde recopilación* a su diagrama de trabajo después de cualquiera de estas transformaciones, su trabajo arrojará error. 

El nodo principal de esta transformación debe ser un nodo que devuelve una recopilación de `DynamicFrames`. Si elige un nodo principal para este nodo de transformación que devuelve un único `DynamicFrame`, como una transformación *Combinación*, su trabajo arroja un error. 

Del mismo modo, si usa un nodo *Seleccionar desde recopilación* en el diagrama de trabajo como nodo principal de una transformación que espera un único `DynamicFrame` como entrada, su trabajo arroja un error.

![\[La captura de pantalla muestra el campo Node parents (Nodos principales) en la pestaña Node properties (Propiedades del nodo) del panel de detalles del nodo. El nodo principal seleccionado es SplitFields y el mensaje de error mostrado dice: “Parent node Split Fields outputs a collection, but node Drop Fields does not accept a collection (El nodo principal Dividir campos genera una recopilación, pero el nodo Descartar campos no acepta una recopilación)”.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/screenshot-edit-splitfields-wrong-parent.png)


# Uso de SelectFromCollection (Seleccionar desde la recopilación) para elegir qué conjunto de datos desea mantener
<a name="transforms-configure-select-collection"></a>

Use la transformación *Seleccionar desde recopilación* para convertir una recopilación de `DynamicFrames` en un solo `DynamicFrame`.

**Para agregar un nodo de transformación Seleccionar desde recopilación al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **SelectFromCollection** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)**.

1. En el encabezado **Frame index (Índice del marco)**, elija el número de índice de la matriz que corresponde al `DynamicFrame` que desea seleccionar de la recopilación de `DynamicFrames`.

   Por ejemplo, si el nodo principal de esta transformación es *Dividir campos*, podrá ver el esquema para cada `DynamicFrame` en la pestaña **Output schema (Esquema de salida)** del nodo. Si desea mantener el `DynamicFrame` asociado al esquema para **Output 2 (Salida 2)**, debería seleccionar **1** para el valor de **Frame index (Índice del marco)**, que es el segundo valor de la lista.

   Solo el `DynamicFrame` que elija se incluye en la salida.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Buscar y rellenar valores faltantes en un conjunto de datos
<a name="transforms-configure-fmv"></a>

Puede utilizar la transformación *FillMissingValues (Completar valores faltantes)* para localizar registros en el conjunto de datos que tienen valores faltantes y agregar un nuevo campo con un valor determinado por imputación. El conjunto de datos de entrada se utiliza para brindar formación al modelo de machine learning (ML) que determina cuál debe ser el valor que falta. Si utiliza conjuntos de datos progresivos, cada conjunto progresivo se utiliza como datos de formación para el modelo de ML, por lo que es posible que los resultados no sean tan precisos.

**Para utilizar un nodo de transformación FillMissingValues (Completar valores faltantes) en el diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **FillMissingValues** para agregar una nueva transformación al diagrama de trabajo, si es necesario.

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación. 

1. Elija la pestaña **Transform (Transformación)**.

1. Para **Data field (Campo de datos)**, elija el nombre de columna o campo de los datos de origen que desea analizar para detectar los valores que faltan.

1. (Opcional) en el campo **New field name (Nombre de campo nuevo)**, ingrese un nombre para el campo agregado a cada registro que contendrá el valor de reemplazo estimado para el campo analizado. Si el campo analizado no tiene un valor faltante, el valor del campo analizado se copia en el nuevo campo. 

   Si no especifica un nombre para el campo nuevo, el nombre predeterminado es el nombre de la columna analizada con `_filled`asociado. Por ejemplo, si ingresa **Age** para el **Data field (Campo de datos)** y no especifica un valor para **New field name (Nombre de campo nuevo)**, se agrega un nombre de campo nuevo **Age\$1filled** a cada registro.

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Filtrado de claves dentro de un conjunto de datos
<a name="transforms-filter"></a>

Use la transformación *Filter (Filtro)* para crear un nuevo conjunto de datos al filtrar los registros del conjunto de datos de entrada en función de una expresión regular. Las filas que no satisfacen la condición del filtro se eliminan de la salida.
+ Para los tipos de datos de cadena, puede filtrar filas en las que el valor de clave coincida con una cadena especificada.
+ Para los tipos de datos numéricos, puede filtrar filas mediante la comparación del valor clave con un valor especificado a través de los operadores de comparación `<`, `>`, `=`, `!=`, `<=` y `>=`.

Si especifica varias condiciones de filtro, los resultados se combinan mediante un operador `AND` de forma predeterminada, pero puede elegir `OR` en su lugar.

La transformación *Filtro* distingue entre mayúsculas y minúsculas. Agregue una transformación *ApplyMapping (Aplicar mapeo)*como nodo principal si necesita nombres de clave de propiedad que no distingan entre mayúsculas y minúsculas.

**Para agregar un nodo de transformación de filtro al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **Filtro** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. Elija la pestaña **Transform (Transformación)**.

1. Elija **Global AND (Global Y)** o **Global OR (Global O)**. Esto determina cómo se combinan distintas condiciones de filtro. Todas las condiciones se combinan mediante operaciones `AND` o `OR`. Si solo tiene una sola condición de filtro, puede elegir entre cualquiera de las dos.

1. Elija el botón **Add condition (Agregar condición)** en la sección **Filter condition (Condición de filtro)** para agregar una condición de filtro. 

   En el campo **Key (Clave)**, elija un nombre de clave de propiedad a partir del conjunto de datos. En el campo **Operation (Operación)** elija el operador de comparación. En el campo **Value (Valor)**, ingrese el valor de comparación. Estas son algunas ejemplos de condiciones de filtro:
   + `year >= 2018`
   + `State matches 'CA*'`

   Cuando filtra los valores de cadena, asegúrese de que el valor de comparación utiliza un formato de expresión regular que coincida con el lenguaje de script seleccionado en las propiedades del trabajo (Python o Scala).

1. Agregue condiciones de filtro adicionales, según sea necesario. 

1. (Opcional) después de configurar las propiedades del nodo de transformación, puede ver el esquema de datos para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Uso de DropNullFields para eliminar campos con valores nulos
<a name="transforms-dropnull-fields"></a>

 Utilice la transformación *DropNullFields* para eliminar campos del conjunto de datos si todos los valores son ‘nulos’. De forma predeterminada, AWS Glue Studio reconocerá objetos nulos, pero algunos valores, como cadenas vacías, cadenas que son “nulas”, los enteros -1 u otros marcadores de posición, como ceros, no se reconocen de manera automática como nulos. 

**Para utilizar DropNullFields**

1.  Agregue un nodo DropNullFields al diagrama de trabajo. 

1.  En la pestaña **Node properties** (Propiedades del nodo), elija valores adicionales que representen un valor nulo. Puede elegir seleccionar todos los valores o ninguno:   
![\[La captura de pantalla muestra la pestaña Transform (Transformar) para el nodo DropNullFields.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/DropNullFields-transform-tab.png)
   +  Cadena vacía (“” o “): los campos que contienen cadenas vacías se eliminarán 
   +  “cadena null”: los campos que contienen la cadena con la palabra ‘null’ se eliminarán 
   +  entero -1: los campos que contienen un entero -1 (uno negativo) se eliminarán 

1.  Si es necesario, también puede especificar valores nulos personalizados. Son valores nulos que pueden ser exclusivos de su conjunto de datos. Para agregar un valor nulo personalizado, elija **Add new value** (Agregar un nuevo valor). 

1.  Ingrese el valor nulo personalizado. Por ejemplo, puede ser cero o cualquier valor que se utilice para representar un valor nulo en el conjunto de datos. 

1.  Elija el tipo de datos en el campo desplegable. Los tipos de datos pueden ser String o Integer. 
**nota**  
 Los valores nulos personalizados y los tipos de datos deben coincidir con exactitud para que los campos se reconozcan como valores nulos y se eliminen. Las coincidencias parciales en las que solo coincide el valor nulo personalizado, pero el tipo de datos no lo hace, no provocarán que los campos se eliminen. 

# Uso de una consulta SQL para transformar datos
<a name="transforms-sql"></a>

Puede usar una transformación **SQL** para escribir su propia transformación en forma de consulta SQL.

Un nodo de transformación SQL puede tener varios conjuntos de datos como entradas, pero solo produce un único conjunto de datos como salida. Contiene un campo de texto, donde se introduce la consulta de Apache SparkSQL. Puede asignar alias a cada conjunto de datos utilizado como entrada, para ayudar simplemente a la consulta SQL. Para obtener más información acerca de la sintaxis SQL, consulte [documentación de Spark SQL](https://spark.apache.org/docs/latest/sql-ref.html).

**nota**  
Si utiliza una transformación de Spark SQL con un origen de datos ubicado en una VPC, agregue un punto de enlace de desarrollo de la VPC de AWS Glue a la VPC que contenga el origen de datos. Para obtener más información acerca de la configuración de puntos de enlace de desarrollo, consulte [Agregar un punto de enlace de desarrollo](https://docs.aws.amazon.com/glue/latest/dg/add-dev-endpoint.html), [Configuración del entorno para puntos de enlace de desarrollo](https://docs.aws.amazon.com/glue/latest/dg/start-development-endpoint.html) y [Acceso al punto de enlace de desarrollo](https://docs.aws.amazon.com/glue/latest/dg/dev-endpoint-elastic-ip.html) en la *Guía para desarrolladores de AWS Glue*.

**Para agregar un nodo de transformación SQL al diagrama de trabajo**

1. (Opcional) agregue un nodo de transformación al diagrama de trabajo, de ser necesario. Seleccione **SQL Query** para el tipo de nodo.
**nota**  
 Si utiliza una sesión de vista previa de datos y un nodo de código o SQL personalizado, la sesión de vista previa de datos ejecutará el SQL o el bloque de código tal cual está para todo el conjunto de datos. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, o si desea varias entradas para la transformación SQL, elija un nodo en la lista **Node parents (Nodos principales)** que se utilizará como origen de entrada para la transformación. Agregue nodos principales adicionales según sea necesario.

1. Elija la pestaña **Transform (Transformación)** en el panel de detalles del nodo. 

1. Los conjuntos de datos de origen para la consulta SQL se identifican mediante los nombres especificados en el campo **Name (Nombre)** para cada nodo. Si no desea utilizar estos nombres o si los nombres no son adecuados para una consulta SQL, puede asociar un nombre a cada conjunto de datos. La consola proporciona alias predeterminados, como `MyDataSource`.

   Por ejemplo, si un nodo principal para el nodo de transformación SQL se denomina `Rename Org PK field`, puede asociar el nombre `org_table` con este conjunto de datos. Este alias se puede utilizar en la consulta SQL en lugar del nombre del nodo. 

1. En el campo de entrada de texto bajo el encabezado **Code block (Bloque de código)**, pegue o escriba la consulta SQL. El campo de texto muestra resaltado de sintaxis SQL y sugerencias de palabras clave.

1. Con el nodo de transformación SQL seleccionado, elija la opción **Output schema (Esquema de salida)** y, a continuación, elija **Edit (Editar)**. Proporcione las columnas y los tipos de datos que describen los campos de salida de la consulta SQL.

   Especifique el esquema mediante las siguientes acciones en la sección **Output schema (Esquema de salida)** de la página:
   + Para cambiar el nombre de una columna, coloque el cursor en el cuadro de texto **Key (Clave)** para la columna [también conocido como *field (campo)* o *property key (clave de propiedad)*] e ingrese el nuevo nombre.
   + Para cambiar el tipo de datos de una columna, seleccione el nuevo tipo de datos para la columna en la lista desplegable.
   + Para agregar una nueva columna de nivel superior al esquema, elija la opción Overflow (Desbordamiento) (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-schema-actions-button.png)) y, a continuación, elija **Add root key (Agregar clave raíz)**. Se agregan nuevas columnas en la parte superior del esquema.
   + Para eliminar una columna del esquema, elija el ícono de eliminación (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/delete-icon-black.png)) en el extremo derecho del nombre de la clave. 

1. Cuando termine de especificar el esquema de salida, elija **Apply (Aplicar)** para guardar los cambios y salir del editor de esquemas. Si no desea guardar los cambios, elija **Cancel (Cancelar)** para editar el editor de esquemas.

1. (Opcional) después de configurar las propiedades del nodo y las propiedades de transformación, puede obtener una previsualización del conjunto de datos modificado si selecciona la opción **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Uso de Agregar para realizar cálculos resumidos en campos seleccionados
<a name="transforms-aggregate-fields"></a>

**Para utilizar la transformación agregada**

1.  Agregue el nodo agregado al diagrama de trabajos. 

1.  En la pestaña **Node properties** (Propiedades del nodo), elija los campos para agruparlos al seleccionar el campo desplegable (opcional). Puede seleccionar más de un campo a la vez o buscar un nombre de campo al escribir en la barra de búsqueda. 

    Cuando se seleccionan los campos, se muestran el nombre y el tipo de datos. Para eliminar un campo, seleccione ‘X’.   
![\[La captura de pantalla muestra la pestaña Transform (Transformar) para el nodo agregado.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/Aggregate-transform-tab.png)

1.  Elija **Aggregate another column** (Agregar otra columna). Es necesario seleccionar al menos un campo.   
![\[La captura de pantalla muestra los campos al elegir agregar otra columna.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/Aggregate-fieldtoaggregate.png)

1.  Elija un campo en el **Field to aggretate** (Campo a agregar) desplegable. 

1.  Elija la función de agregación que desea aplicar al campo elegido: 
   +  avg: calcula el promedio 
   +  countDistinct: calcula el número de valores únicos no nulos 
   +  count: calcula el número de valores no nulos 
   +  first: devuelve el primer valor que satisface los criterios “agrupar por” 
   +  last: devuelve el último valor que satisface los criterios “agrupar por” 
   +  kurtosis: calcula la nitidez del pico de una curva de distribución de frecuencias 
   +  max: devuelve el valor más alto que satisface los criterios “agrupar por” 
   +  min: devuelve el valor más bajo que satisface los criterios “agrupar por” 
   +  sesgo: medida de la asimetría de la distribución de probabilidad de una distribución normal 
   +  stddev\$1pop: calcula la desviación estándar de la población y devuelve la raíz cuadrada de la variación de la población 
   +  sum: la suma de todos los valores en el grupo 
   +  sumDistinct: la suma de distintos valores en el grupo 
   +  var\$1samp: la variación de la muestra del grupo (ignora los valores nulos) 
   +  var\$1pop: la variación de la población del grupo (ignora los valores nulos) 

# Aplanamiento de estructuras anidadas
<a name="transforms-flatten"></a>

*Aplana* los campos de las estructuras anidadas en los datos para que se conviertan en campos de nivel superior. Los nuevos campos se denominan con el nombre del campo precedido de los nombres de los campos de la estructura que lo integran, separados por puntos. 

Por ejemplo, si los datos tienen un campo de tipo de estructura llamado “phone\$1numbers”, que entre otros campos tiene uno del tipo “Struct” denominado “home\$1phone” con dos campos: “country\$1code” y “number”. Una vez aplanados, estos dos campos pasarán a ser campos de nivel superior denominados: “phone\$1numbers.home\$1phone.country\$1code” y “phone\$1numbers.home\$1phone.number”, respectivamente.

**Para agregar un nodo de transformación de *Aplanado* al diagrama de trabajo**

1. Abra el panel de recursos y elija la pestaña **Transformación** y, a continuación, **Flatten** para agregar una nueva transformación al diagrama de trabajo. También puede utilizar la barra de búsqueda a través del ingreso de “Flatten” y, a continuación, hacer clic en el nodo Flatten. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.  
![\[La captura de pantalla muestra el panel de recursos y la barra de búsqueda con la palabra “Flatten”. El resultado de la búsqueda muestra la transformación Flatten.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transform-flatten.png)

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. (Opcional) En la pestaña **Transformación**, puede limitar el nivel máximo de anidamiento para aplanar. Por ejemplo, si establece ese valor en 1 significa que solo se aplanarán las estructuras de nivel superior. Si se establece el máximo en 2, se aplanarán el nivel superior y las estructuras que se encuentran justo debajo de este.

# Agregar una columna UUID
<a name="transforms-uuid"></a>

Al agregar una columna *UUID* (Identificador único universal), se le asignará una cadena única de 36 caracteres a cada fila.

**Para agregar un nodo de transformación de *UUID* en el diagrama de trabajo**

1. Abra el panel de recursos y, luego, elija **UUID** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. (Opcional) En la pestaña **Transformación**, puede personalizar el nombre de la nueva columna. De forma predeterminada, se denominará “uuid”.

# Agregar una columna de identificador
<a name="transforms-identifier"></a>

Asigne un *identificador* numérico para cada fila del conjunto de datos.

**Para agregar un nodo de transformación de *Identificador* en el diagrama de trabajo**

1. Abra el panel de recursos y, luego, elija **Identificador** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. (Opcional) En la pestaña **Transformación**, puede personalizar el nombre de la nueva columna. De forma predeterminada, se llamará “id”.

1. (Opcional) Si el trabajo procesa y almacena los datos de forma incremental, debe evitar que se vuelvan a utilizar los mismos id entre las ejecuciones del trabajo.

   En la pestaña **Transformación**, marque la opción de la casilla de verificación **único**. Incluirá la marca temporal del trabajo en el identificador, lo que lo hará único entre varias ejecuciones. Para permitir el número mayor, la columna, en lugar tipo long, será un decimal.

# Convertir una columna al tipo de marca temporal
<a name="transforms-to-timestamp"></a>

Puede utilizar la transformación *marca temporal* para cambiar el tipo de datos de una columna numérica o de cadena a una de marca temporal, de modo que pueda almacenarse con ese tipo de datos o aplicarse a otras transformaciones que requieran una marca temporal.

**Para agregar un nodo de transformación de *marca temporal* al diagrama de trabajo**

1. Abra el panel Recursos y, luego, elija **Marca temporal** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, introduzca el nombre de la columna que se va a convertir.

1. En la pestaña **Transformación**, defina cómo analizar la columna seleccionada mediante la elección del tipo.

   Si el valor es un número, se puede expresar en segundos (marca temporal de Unix/Python), milisegundos o microsegundos, elija la opción correspondiente.

   Si el valor es una cadena con formato, elija el tipo “iso”, la cadena debe ajustarse a una de las variantes del formato ISO, por ejemplo: “2022-11-02T14:40:59.915Z”.

   Si desconoce el tipo en este momento o si diferentes filas utilizan tipos diferentes, puede elegir la opción “detección automática” y el sistema hará su mejor estimación, con un pequeño costo en el rendimiento.

1. (Opcional) En la pestaña **Transformación**, en lugar de convertir la columna seleccionada, puede crear una nueva y conservar la original al asignar un nombre para la nueva columna.

# Convertir una columna con marca temporal en una cadena con formato
<a name="transforms-format-timestamp"></a>

Formatee una columna de marca temporal en una cadena basada en un patrón. Puede utilizar *Formatear marca temporal* para obtener la fecha y la hora como una cadena con el formato deseado. Puede definir el formato con la [Sintaxis de fecha de Spark](https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html), así como la mayoría de los [Códigos de fecha de Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).

Por ejemplo, si quiere que la cadena de fecha tenga el formato “2023-01-01 00:00”, puede definir dicho formato con la sintaxis de Spark como “yyyy-MM-dd HH:mm” o los códigos de fecha equivalentes de Python como “%Y-%m-%d %H:%M”

**Para agregar un nodo de transformación de *formateo de marca temporal* al diagrama de trabajo**

1. Abra el panel de recursos y, a continuación, elija **Formatear marca temporal** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, introduzca el nombre de la columna que se va a convertir.

1. En la pestaña **Transformación**, introduzca el patrón de **Formato de marca temporal** que desea utilizar, expresado mediante la [sintaxis de fecha de Spark](https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html) o [los códigos de fecha de Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).

1. (Opcional) En la pestaña **Transformación**, en lugar de convertir la columna seleccionada, puede crear una nueva y conservar la original al asignar un nombre para la nueva columna.

# Creación de una transformación de Enrutador condicional
<a name="transforms-conditional-router"></a>

 La transformación del Enrutador condicional permite aplicar múltiples condiciones a los datos entrantes. Cada fila de los datos entrantes se evalúa mediante una condición de filtro de grupo y se procesa en su grupo correspondiente. Si una fila cumple con más de una condición de filtro de grupo, la transformación pasa la fila a varios grupos. Si una fila no cumple con ninguna condición, se puede eliminar o enrutar a un grupo de salida predeterminado. 

 Esta transformación es similar a la transformación de filtro, pero es útil para los usuarios que desean probar los mismos datos de entrada en múltiples condiciones. 

**Para agregar una transformación de Enrutador condicional:**

1.  Elija un nodo en el que realizará la transformación de enrutador condicional. Puede ser un nodo de origen o una transformación distinta. 

1.  Elija **Acción** y, a continuación, utilice la barra de búsqueda para buscar y elegir “Enrutador condicional”. Se agrega una transformación de **Enrutador condicional** junto con dos nodos de salida. Un nodo de salida, “Grupo predeterminado”, contiene registros que no cumplen ninguna de las condiciones definidas en los otros nodos de salida. El grupo predeterminado no se puede editar.   
![\[La captura de pantalla muestra el nodo de transformación del enrutador condicional conectado a un nodo de origen. Los nodos de salida se muestran ramificados desde el nodo del enrutador condicional.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transform-conditional-router-node.png)

    Puede agregar grupos de salida adicionales si selecciona **Agregar grupo**. Puede asignar un nombre a cada grupo de resultado y agregar condiciones de filtro y un operador lógico.   
![\[La captura de pantalla muestra la pestaña de transformación del enrutador condicional con opciones para nombrar el grupo de salida, el operador lógico y los filtros condicionales.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transform-conditional-router-tab.png)

1.  Cambie el nombre del grupo de salida al introducir un nombre nuevo para el grupo. AWS Glue Studio asignará de forma automática un nombre a los grupos (por ejemplo, “output\$1group\$11”). 

1.  Elija un operador lógico (**AND**, **OR**) y agregue una **Condición de filtro** mediante la especificación de la **Clave**, la **Operación** y el **Valor**. Los operadores lógicos permiten implementar más de una condición de filtro y aplicar el operador lógico en cada condición de filtro que especifique. 

    Cuando especifique la clave, puede elegir entre las claves disponibles en el esquema. Luego, puede elegir la operación disponible según el tipo de clave que seleccionó. Por ejemplo, si el tipo de clave es “cadena”, la operación disponible para elegir es “coincidencias”.   
![\[La captura de pantalla muestra la pestaña de transformación del enrutador condicional con los campos de condiciones del filtro para la clave, la operación y el valor.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transform-conditional-router-filter-condition.png)

1.  Ingrese el valor en el campo **Valor**. Elija **Agregar condición** para agregar condiciones de filtro adicionales. Para eliminar las condiciones de filtro, elija el icono de la papelera. 

# Uso de la transformación Concatenar columnas para agregar columnas
<a name="transforms-concatenate-columns"></a>

 La transformación de concatenar permite crear una nueva columna de cadena mediante la utilización de los valores de otras columnas con un espaciador opcional. Por ejemplo, si definimos una columna concatenada “date” como la concatenación de “año”, “mes” y “día” (en ese orden) con “-” como espaciador, obtendremos: 


| day | month | year | date | 
| --- | --- | --- | --- | 
| 01 | 01 | 2020 | 2020-01-01 | 
| 02 | 01 | 2020 | 2020-01-02 | 
| 03 | 01 | 2020 | 2020-01-03 | 
| 04 | 01 | 2020 | 2020-01-04 | 

**Para agregar una transformación de Concatenar:**

1. Abre el panel de recursos. A continuación, elija **Concatenar columnas** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, ingrese el nombre de la columna que contendrá la cadena concatenada, así como las columnas que se concatenarán. El orden en el que selecciones las columnas en el menú desplegable será el orden en que se usen.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación de concatenar.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-concatenate-transform-tab.png)

1. **Espaciador (opcional):** introduce una cadena para colocarla entre los campos concatenados. No hay un espaciador predeterminado.

1. **Valor nulo (opcional):** ingrese una cadena para utilizarla cuando el valor de una columna sea nulo. De forma predeterminada, en los casos en que las columnas tienen el valor “NULO” o “NA”, se utiliza una cadena vacía.

# Uso de la transformación de cadena dividida para dividir una columna de cadena
<a name="transforms-split-string"></a>

 La transformación de cadena dividida permite dividir una cadena en una matriz de símbolos mediante una expresión regular para definir cómo se realiza la división. Luego, puede mantener la columna como un tipo de matriz o aplicar una transformación de **matriz a columnas** después de esta, para extraer los valores de la matriz en los campos de nivel superior, suponiendo que cada token tenga un significado que conozcamos de antemano. Además, si el orden de los símbolos es irrelevante (por ejemplo, un conjunto de categorías), puedes usar la transformación **Expansión** para generar una fila independiente para cada valor. 

 Por ejemplo, se puede dividir la columna “categorías” mediante una coma como patrón para agregar una columna “categories\$1arr”. 


| product\$1id | categories | categories\$1arr | 
| --- | --- | --- | 
| 1 | deportes, invierno | [deportes, invierno] | 
| 2 | jardín, herramientas | [jardín, herramientas] | 
| 3 | video juegos | [video juegos] | 
| 4 | juego, juego de mesa, social | [juego, juego de mesa, social] | 

**Para agregar una transformación de cadena dividida, realice lo siguiente:**

1. Abra el panel de recursos y, luego, elija Cadena dividida para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña Propiedades del nodo, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, elija la columna que desee dividir e ingrese el patrón que se utilizará para dividir la cadena. En la mayoría de los casos, solo tiene que ingresar los caracteres, a menos que tengan un significado especial como expresión regular y deban ocultarse. Los caracteres que hay que ocultar son: `\.[]{}()<>*+-=!?^$|` mediante la adición de una barra invertida delante del carácter. Por ejemplo, si desea separarlos por un punto ('.'), debe ingresar `\.`. Sin embargo, una coma no tiene un significado especial y se puede especificar tal cual: `,`.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación de dividir la cadena.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-split-string-transform-tab.png)

1. (Opcional) Si desea conservar la columna de cadena original, puede ingresar un nombre para una nueva columna de matriz, de manera que se mantenga tanto la columna de cadena original como la nueva columna de matriz tokenizada.

# Uso de la transformación de Matriz a columnas para extraer los elementos de una matriz en columnas de nivel superior
<a name="transforms-array-to-columns"></a>

 La transformación de Matriz a columnas permite extraer algunos o todos los elementos de una columna de tipo matriz en nuevas columnas. La transformación llenará las nuevas columnas tanto como sea posible si la matriz tiene valores suficientes para extraerlos y, opcionalmente, tomará los elementos en las posiciones especificadas. 

 Por ejemplo, si tiene una columna de matriz llamada “subred”, que fue el resultado de aplicar la transformación “cadena dividida” en una subred ip v4, puede extraer la primera y la cuarta posición en las nuevas columnas “first\$1octect” y “forth\$1octect”. El resultado de la transformación en este ejemplo sería (observe que las dos últimas filas tienen matrices más cortas de lo esperado): 


| subred | first\$1octect | fourth\$1octect | 
| --- | --- | --- | 
| [54, 240, 197, 238] | 54 | 238 | 
| [192, 168, 0, 1] | 192 | 1 | 
| [192, 168] | 192 |  | 
| [] |  |  | 

**Para agregar una transformación de Matriz a columnas:**

1. Abra el panel de recursos y elija **Matriz a columnas** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, elija la columna de matriz a extraer e ingrese la lista de columnas nuevas para los tokens extraídos.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación de Matriz a columnas.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-array-to-columns-transform-tab.png)

1. (Opcional) Si no desea utilizar los tokens de la matriz para asignarlos a las columnas, puede especificar los índices que se utilizarán, que se asignarán a la lista de columnas en el mismo orden especificado. Por ejemplo, si las columnas de salida son “columna1, columna2, columna3” y los índices “4, 1, 3”, el cuarto elemento de la matriz irá a la columna1, el primero a la columna2 y el tercero a la columna3 (si la matriz es más corta que el número de índice, se establecerá un valor NULO).

# Uso de la transformación Agregar marca de tiempo actual
<a name="transforms-add-current-timestamp"></a>

 La transformación **Agregar marca de tiempo actual** permite marcar las filas con la hora en la que se procesaron los datos. Esto resulta útil para fines de auditoría o para realizar un seguimiento de la latencia en la canalización de datos. Puede agregar esta nueva columna como un tipo de datos de marca de tiempo o una cadena formateada. 

**Para agregar una transformación de tipo Add Current Timestamp:**

1. Abra el panel de recursos y, a continuación, elija **Agregar marca de tiempo actual** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal. 

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.  
![\[La captura de pantalla muestra la pestaña de Transformar de la transformación Agregar marca de tiempo actual.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-add-current-timestamp-transform-tab.png)

1. (Opcional) En la pestaña **Transformación**, ingrese un nombre personalizado para la nueva columna y un formato si prefiere que la columna sea una cadena de fecha con formato.

# Uso de la transformación de rotar filas a columnas
<a name="transforms-pivot-rows-to-columns"></a>

 La transformación **filas dinámicas a columnas** permite agregar una columna numérica mediante la rotación de valores únicos en las columnas seleccionadas para convertirlas en nuevas columnas (si se seleccionan varias columnas, los valores se concatenan para dar nombre a las nuevas columnas). De esta forma, las filas se consolidan y hay más columnas con agregaciones parciales para cada valor único. Por ejemplo, si tiene este conjunto de datos de ventas por mes y país (ordenado para que sea más fácil de ilustrar): 


| year | month | país | importe | 
| --- | --- | --- | --- | 
| 2020 | Ene | uk | 32 | 
| 2020 | Ene | de | 42 | 
| 2020 | Ene | us | 64 | 
| 2020 | Feb | uk | 67 | 
| 2020 | Feb | de | 4 | 
| 2020 | Feb | de | 7 | 
| 2020 | Feb | us | 6 | 
| 2020 | Feb | us | 12 | 
| 2020 | Ene | us | 90 | 

 Si cambia el **importe** y el **país** como columnas de agregación, se crean nuevas columnas a partir de la columna del **país** original. **En la siguiente tabla, tiene nuevas columnas para de**, **uk** y **us** en lugar de la columna de **país**. 


| year | month | de | uk | us | 
| --- | --- | --- | --- | --- | 
| 2020 | Ene | 42 | 32 | 64 | 
| 2020 | Ene | 11 | 67 | 18 | 
| 2021 | Ene |  |  | 90 | 

 Si, por el contrario, desea cambiar el mes y el condado, obtendrá una columna para cada combinación de los valores de esas columnas: 


| year | Jan\$1DE | Jan\$1uk | Jan\$1us | Feb\$1de | Feb\$1UK | Feb\$1US | 
| --- | --- | --- | --- | --- | --- | --- | 
| 2020 | 42 | 32 | 64 | 11 | 67 | 18 | 
| 2021 |  |  | 90 |  |  |  | 

**Para agregar una transformación de filas dinámicas a columnas, realice lo siguiente:**

1. Abra el panel de recursos y, luego, elija **Filas dinámicas a columnas** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, elija la columna numérica que se agregará para generar los valores de las nuevas columnas, la función de agregación que desee aplicar y las columnas para convertir sus valores únicos en columnas nuevas.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación “Cambiar columnas a filas”.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-pivot-rows-to-columns-transform-tab.png)

# Uso de la transformación de anulación de rotación de columnas a filas
<a name="transforms-unpivot-columns-to-rows"></a>

 La transformación **Anular rotación** permite convertir columnas en valores de nuevas columnas, lo que genera una fila para cada valor único. Si bien es lo opuesto a rotar, se debe tener en cuenta que no es equivalente, ya que no puede separar filas con valores idénticos que se hayan agregado ni dividir combinaciones en las columnas originales (se puede hacerlo más adelante mediante una transformación dividida). Por ejemplo, si tiene la siguiente carga: 


| year | month | de | uk | us | 
| --- | --- | --- | --- | --- | 
| 2020 | Ene | 42 | 32 | 64 | 
| 2020 | Feb | 11 | 67 | 18 | 
| 2021 | Ene |  |  | 90 | 

 Se puede anular la rotación de las columnas “de”, “uk” y “us” y convertirlas en una columna “país” con el valor “importe” y obtener lo siguiente (ordenado aquí a modo ilustrativo): 


| year | month | país | importe | 
| --- | --- | --- | --- | 
| 2020 | Ene | uk | 32 | 
| 2020 | Ene | de | 42 | 
| 2020 | Ene | us | 64 | 
| 2020 | Feb | uk | 67 | 
| 2020 | Feb | de | 11 | 
| 2020 | Feb | us | 18 | 
| 2021 | Ene | us | 90 | 

 Observe que las columnas que tienen un valor NULO (“de” y “uk” de enero de 2021) no se generan de forma predeterminada. Puede activar esa opción para obtener: 


| year | month | país | importe | 
| --- | --- | --- | --- | 
| 2020 | Ene | uk | 32 | 
| 2020 | Ene | de | 42 | 
| 2020 | Ene | us | 64 | 
| 2020 | Feb | uk | 67 | 
| 2020 | Feb | de | 11 | 
| 2020 | Feb | us | 18 | 
| 2021 | Ene | us | 90 | 
| 2021 | Ene | de |  | 
| 2021 | Ene | uk |  | 

**Para agregar una transformación de anulación de rotación de columnas a filas, realice lo siguiente:**

1. Abra el panel de recursos y, luego, elija **Anular rotación de columnas en filas** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, ingrese las nuevas columnas que se van a crear para que contengan los nombres y valores de las columnas seleccionadas para anular la rotación.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación “Anular cambio de columnas a filas”.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-unpivot-columns-to-rows-transform-tab.png)

# Uso de la transformación de Procesamiento de autobalance para optimizar el tiempo de ejecución
<a name="transforms-autobalance-processing"></a>

 La transformación de **Procesamiento de autobalance** redistribuye los datos entre los trabajadores para mejorar el rendimiento. Esto ayuda en los casos en que los datos están desequilibrados o, tal como provienen del origen, no permiten un procesamiento paralelo suficiente. Esto es común cuando el origen está comprimido con gzip o es JDBC. La redistribución de los datos tiene un costo de rendimiento modesto, por lo que es posible que la optimización no siempre compense ese esfuerzo si los datos ya estaban bien equilibrados. En la imagen inferior, la transformación utiliza la repartición de Apache Spark para reasignar datos de forma aleatoria entre un número de particiones óptimo para la capacidad del clúster. Para los usuarios avanzados, es posible ingresar varias particiones de forma manual. Además, se puede utilizar para optimizar la escritura de tablas particionadas al reorganizar los datos en función de columnas específicas. Esto da como resultado archivos de salida más consolidados. 

****

1. Abra el panel de recursos y, a continuación, elija **Procesamiento de autobalance** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. (Opcional) En la pestaña **Transformación**, puede ingresar varias particiones. En general, se recomienda dejar que el sistema decida este valor; sin embargo, puede ajustar el multiplicador o ingresar un valor específico si necesita controlarlo. Si va a guardar los datos particionados por columnas, puede elegir las mismas columnas como columnas de repartición. De esta forma, minimizará la cantidad de archivos en cada partición y evitará tener muchos archivos por partición, lo que dificultaría el rendimiento de las herramientas que consultan esos datos.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación de Procesamiento de autobalance.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-autobalance-processing-transform-tab.png)

# Uso de la transformación de columna derivada para combinar otras columnas
<a name="transforms-derived-column"></a>

 La transformación de **Columna derivada** permite definir una nueva columna basada en una fórmula matemática o expresión SQL en la que puede utilizar otras columnas de los datos, así como constantes y literales. Por ejemplo, para obtener una columna de “porcentaje” a partir de las columnas “éxito” y “recuento”, puede ingresar la expresión SQL: “éxito \$1 100 / recuento \$1\$1 ‘%’”. 

 Ejemplo de resultado: 


| success | count | percentage | 
| --- | --- | --- | 
| 14 | 100 | 14 % | 
| 6 | 20 | 3 % | 
| 3 | 40 | 7,5 % | 

**Para agregar una transformación de columna derivada:**

1. Abra el panel de recursos y, a continuación, elija **Columna derivada** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, ingrese el nombre de la columna y la expresión de su contenido.  
![\[La captura de pantalla muestra la pestaña de Transformar de la transformación Columna derivada.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-dervied-column-transform-tab.png)

# Uso de la transformación de búsqueda para agregar datos coincidentes de una tabla de catálogo
<a name="transforms-lookup"></a>

 La transformación de **búsqueda** permite agregar columnas de una tabla de catálogo definida cuando las claves coinciden con las columnas de búsqueda definidas en los datos. Esto equivale a hacer una unión exterior izquierda entre los datos y la tabla de consulta al usar como condición columnas coincidentes. 

**Para agregar una transformación de búsqueda, realice lo siguiente:**

1. Abra el panel de recursos y, luego, elija **Búsqueda** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, ingrese el nombre completo de la tabla de catálogo que desee utilizar para realizar las búsquedas. Por ejemplo, si la base de datos es “mydb” y la tabla es “mytable”, ingrese “mydb.mytable”. A continuación, ingrese los criterios para buscar una coincidencia en la tabla de consulta, si la clave de búsqueda está compuesta. Ingrese la lista de columnas clave separadas por comas. Si una o más de las columnas clave no tienen el mismo nombre, se debe definir el mapeo de coincidencias. 

   Por ejemplo, si las columnas de datos son “user\$1id” y “region” y en la tabla de usuarios las columnas correspondientes se denominan “id” y “region”, en el campo **Columnas que deben coincidir**, ingrese: “user\$1id=id, region”. Puede usar region=region, pero no es necesario, ya que son lo mismo.

1. Por último, ingrese las columnas que desee extraer de la fila correspondiente en la tabla de consulta para incorporarlas a los datos. Si no se encontró ninguna coincidencia, dichas columnas se establecerán en CERO.
**nota**  
Debajo de la transformación de **búsqueda**, se utiliza una unión a la izquierda para ser eficiente. Si la tabla de búsqueda tiene una clave compuesta, asegúrese de que las columnas que deben coincidir estén configuradas para que coincidan con todas las columnas clave, de modo que solo pueda producirse una coincidencia. De lo contrario, coincidirán varias filas de búsqueda y, como resultado, se agregarán filas adicionales para cada una de esas coincidencias.  
![\[La captura de pantalla muestra la pestaña Transformación de la transformación de buscar.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-lookup-transform-tab.png)

# Uso de la transformación Desglosar matriz o Mapa en filas
<a name="transforms-explode-array"></a>

 La transformación **Desglosar** permite extraer valores de una estructura anidada en filas individuales que son más fáciles de manipular. En el caso de una matriz, la transformación generará una fila para cada valor de la matriz, mediante la replicación de los valores de las demás columnas de la fila. En el caso de un mapa, la transformación generará una fila para cada entrada con la clave y el valor como columnas más cualquier otra columna de la fila. 

 Por ejemplo, si tenemos este conjunto de datos que tiene una columna de matriz llamada “categorías” con varios valores. 


| product\$1id | categoría | 
| --- | --- | 
| 1 | [deportes, invierno] | 
| 2 | [jardín, herramientas] | 
| 3 | [video juegos] | 
| 4 | [juego, juego de mesa, social] | 
| 5 | [] | 

 Si desglosas la columna de “categorías” en una columna con el mismo nombre, la anularás. Puede seleccionar si desea incluir los valores NULO para obtener lo siguiente (ordenados con fines ilustrativos): 


| product\$1id | categoría | 
| --- | --- | 
| 1 | deportes/ | 
| 1 | invierno | 
| 2 | jardín | 
| 2 | herramienta | 
| 3 | video juegos | 
| 4 | partido | 
| 4 | juego de mesa | 
| 4 | social | 
| 5 |  | 

**Para agregar una transformación de Desglosar matriz o Mapa en filas:**

1. Abra el panel de recursos y, a continuación, elija **Desglosar matriz o Mapa en filas** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña **Propiedades del nodo**, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, elija un nodo de la lista Nodos principales para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, elija la columna que desee desglosar (debe ser de tipo matriz o mapa). A continuación, ingrese un nombre para la columna para los elementos de la matriz o los nombres de las columnas para las claves y los valores si va a descomponer un mapa.

1. (Opcional) En la pestaña **Transformación**, de forma predeterminada, si la columna que se va a desglosar es NULA o tiene una estructura vacía, se omitirá en el conjunto de datos desglosado. Si desea conservar la fila (con las nuevas columnas como NULAS), active la casilla “Incluir valores NULOS”.  
![\[La captura de pantalla muestra la pestaña Transformación para la transformación Desglosar matriz o Mapa en filas.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/transforms-explode-array-transform-tab.png)

# Uso de la transformación de registro de coincidencias para invocar una transformación de clasificación de datos existente
<a name="transforms-record-matching"></a>

Esta transformación invoca una transformación de clasificación de datos de machine learning de registro de coincidencias existente.

La transformación evalúa los datos actuales y los compara con el modelo entrenado en función de las etiquetas. Se agrega una columna “match\$1id” para asignar cada fila a un grupo de elementos que se consideran equivalentes según el entrenamiento del algoritmo. Para obtener más información, consulte [Registro de coincidencias con Lake Formation FindMatches](https://docs.aws.amazon.com/glue/latest/dg/machine-learning.html).

**nota**  
La versión AWS Glue utilizada en el trabajo visual debe coincidir con la versión que AWS Glue se utilizó para crear la transformación de registro de coincidencias.

![\[La captura de pantalla muestra la pestaña Previsualización de datos de un nodo.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/recording-matching-transform-1.png)


**Para agregar un nodo de transformación de registro de coincidencias al diagrama de trabajo**

1. Abra el panel de recursos y, luego, elija **Registro de coincidencias** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña propiedades del nodo, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, ingrese el ID obtenido de la página de **transformaciones de machine learning**:  
![\[En la captura de pantalla, se muestra el ID de la página de transformaciones de machine learning.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/recording-matching-transform-2.png)

1. (Opcional) En la pestaña **Transformación**, se puede marcar la opción para agregar las puntuaciones de confianza. A costa de un cálculo extra, el modelo estimará una puntuación de confianza para cada partido como una columna adicional.

# Eliminación de filas nulas
<a name="transforms-remove-null-rows"></a>

Esta transformación elimina del conjunto de datos las filas que tienen todas las columnas como nulas. Además, se puede ampliar este criterio para incluir campos vacíos, a fin de mantener las filas en las que al menos una columna no esté vacía.

**Para agregar un nodo de transformación de eliminación de filas nulas campo al diagrama de trabajo**

1. Abra el panel de recursos y, luego, elija **Eliminar filas nulas** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña propiedades del nodo, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. (Opcional) En la pestaña **Transformación**, active la opción **Extendida** si desea que las filas no solo no sean nulas, sino que tampoco estén vacías, de forma que las cadenas, matrices o mapas vacíos se considerarán nulos a los efectos de esta transformación.

# Análisis de una columna de cadena que contiene datos JSON
<a name="transforms-parse-json-column"></a>

Esta transformación analiza una columna de cadena que contiene datos JSON y la convierte en una estructura o una columna de matriz, en función de si el JSON es un objeto o una matriz, respectivamente. Si lo desea, puede conservar tanto la columna analizada como la original.

El esquema JSON se puede proporcionar o deducir (en el caso de los objetos de JSON), con un muestreo opcional.

**Para agregar un nodo de transformación de columnas JSON de análisis al diagrama de trabajo**

1. Abra el panel de recursos y, luego, elija **Analizar columna JSON** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña propiedades del nodo, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, selecciona la columna que contiene la cadena JSON.

1. (Opcional) En la pestaña **Transformación**, ingrese el esquema que siguen los datos de JSON con la sintaxis SQL, por ejemplo: “field1 STRING, field2 INT” en el caso de un objeto o “ARRAY<STRING>” en el caso de una matriz.

   Si se trata de una matriz, se requiere el esquema, pero en el caso de un objeto, si no se especifica el esquema, se deducirá a partir de los datos. Para reducir el impacto de inferir el esquema (especialmente en un conjunto de datos grande), puede evitar leer los datos completos dos veces. Para ello, ingrese una **proporción de muestras que se utilizará para inferir el esquema**. Si el valor es inferior a 1, se utiliza la proporción correspondiente de muestras aleatorias para deducir el esquema. Si los datos son fiables y el objeto es concordante entre las filas, se puede utilizar una proporción pequeña como 0,1 para mejorar el rendimiento.

1. (Opcional) En la pestaña **Transformación**, se puede ingresar un nombre de columna nuevo si desea conservar tanto la columna de cadena original como la columna analizada.

# Extracción de una ruta JSON
<a name="transforms-extract-json-path"></a>

Esta transformación extrae nuevas columnas de una columna de cadena JSON. Esta transformación resulta útil cuando solo se necesitan unos pocos elementos de datos y no se desea importar todo el contenido de JSON al esquema de la tabla.

**Para agregar un nodo de transformación de Extracción de Ruta JSON al diagrama de trabajo**

1. Abra el panel de recursos y, a continuación, elija **Extracción de ruta JSON** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña propiedades del nodo, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, selecciona la columna que contiene la cadena JSON. Ingrese una o más expresiones de ruta JSON separadas por comas, cada una de las cuales haga referencia a cómo extraer un valor de la matriz o el objeto JSON. Por ejemplo, si la columna JSON contiene un objeto con las propiedades “prop\$11” y “prop2”, puede extraer ambos al especificar los nombres “prop\$11, prop\$12”.

   Si el campo JSON tiene caracteres especiales, por ejemplo, para extraer la propiedad de este JSON `{"a. a": 1}`, puede usar la ruta `$['a. a']`. La excepción es la coma porque está reservada para separar rutas. A continuación, ingrese los nombres de columna correspondientes para cada ruta, separados por comas.

1. (Opcional) En la pestaña **Transformación**, puedes marcar la casilla para eliminar la columna JSON una vez extraída. Esto tiene sentido si no necesitas el resto de los datos JSON una vez extraídas las partes que necesitas.

# Extracción de fragmentos de cadenas mediante una expresión regular
<a name="transforms-regex-extractor"></a>

Esta transformación extrae fragmentos de cadenas mediante una expresión regular y crea una nueva columna a partir de ella o varias columnas si se utilizan grupos de expresiones regulares.

**Para agregar un nodo de transformación de extractor de expresiones regulares al diagrama de trabajo:**

1. Abra el panel de recursos y, luego, elija **Extractor de expresiones regulares** para agregar una nueva transformación al diagrama de trabajo. El nodo seleccionado en el momento de agregar el nodo será el nodo principal.

1. (Opcional) En la pestaña propiedades del nodo, puede ingresar un nombre para el nodo en el diagrama de trabajo. Si todavía no está seleccionado un nodo principal, elija un nodo de la lista **Node parents (Nodos principales)** para utilizar como origen de entrada para la transformación.

1. En la pestaña **Transformación**, ingrese la expresión regular y la columna en la que se debe aplicar. Luego, ingrese el nombre de la nueva columna en la que desee almacenar la cadena correspondiente. La nueva columna será nula solo si la columna de origen es nula; si la expresión regular no coincide, la columna estará vacía.

   Si la expresión regular usa grupos, habrá un nombre de columna correspondiente separado por una coma, pero puede omitir los grupos al dejar el nombre de la columna vacío.

   Por ejemplo, si tiene una columna “fecha de compra” con una cadena que utiliza formatos de fecha ISO largos y cortos, querrá extraer el año, el mes, el día y la hora, cuando estén disponibles. Tenga en cuenta que el grupo de horas es opcional; de lo contrario, en las filas donde no esté disponible, todos los grupos extraídos serían cadenas vacías (ya que la expresión regular no coincide). En este caso, no queremos que el grupo haga que la hora sea opcional, sino la interna, por lo que dejamos el nombre en blanco y no se extrae (ese grupo incluiría el carácter T).  
![\[La captura de pantalla muestra la configuración de una expresión regular para el extractor de expresiones regulares.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/regex-extractor-1.png)

   Como resultado, se obtiene la vista previa de los datos:  
![\[La captura de pantalla muestra la configuración de una vista previa de datos para el extractor de expresiones regulares.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/regex-extractor-2.png)

# Crear una transformación personalizada
<a name="transforms-custom"></a>

Si necesita realizar transformaciones más complicadas en sus datos o desea agregar claves de propiedad de datos al conjunto de datos, puede agregar una transformación **Custom code (Código personalizado)** al diagrama de trabajo. El nodo Custom code (Código personalizado) permite introducir un script que realiza la transformación. 

Cuando utilice el código personalizado, debe utilizar un editor de esquemas para indicar los cambios realizados en la salida a través del código personalizado. Cuando edita el esquema, puede realizar las siguientes acciones:
+ Agregar o eliminar claves de propiedades de datos
+ Cambiar el tipo de datos de las claves de propiedad de datos
+ Cambiar el nombre de las claves de propiedad de datos
+ Reestructurar una clave de propiedad anidada

Debe utilizar una transformación *SelectFromCollection (Seleccionar desde la recopilación)* para elegir un único `DynamicFrame` del resultado del nodo de transformación personalizado antes de enviar la salida a una ubicación de destino. 

Utilice las siguientes tareas para agregar un nodo de transformación personalizado al diagrama de trabajo.

## Agregar un nodo de transformación de código personalizado al diagrama de trabajo
<a name="transforms-custom-addnode"></a>

**Para agregar un nodo de transformación personalizado al diagrama de trabajo**

1. (Opcional) abra el panel de recursos y elija **Custom transform** para agregar una nueva transformación al diagrama de trabajo, si es necesario. 

1. En la pestaña **Node properties (Propiedades del nodo)**, ingrese un nombre para el nodo en el diagrama de trabajo. Si todavía no se ha seleccionado un nodo principal, o si desea varias entradas para la transformación personalizada, elija un nodo en la lista **Node parents (Nodos principales)** que se utilizará como origen de entrada para la transformación.

## Introducción de código para el nodo de transformación personalizado
<a name="transforms-custom-addcode"></a>

Puede escribir o copiar el código en un campo de entrada. El trabajo utiliza este código para realizar la transformación de datos. Puede proporcionar un fragmento de código en Python o Scala. El código debe tener uno o varios `DynamicFrames` como entrada y devuelve una recopilación de `DynamicFrames`. 

**Para escribir el script para un nodo de transformación personalizado**

1. Con el nodo de transformación personalizado seleccionado en el diagrama de trabajo, elija la pestaña **Transform (Transformación)**. 

1. En el campo de entrada de texto en el encabezado **Code block (Bloque de código)**, pegue o escriba el código para la transformación. El código que utilice debe coincidir con el lenguaje especificado para el trabajo en la pestaña **Job details (Detalles del trabajo)**.

   Al hacer referencia a los nodos de entrada en el código, AWS Glue Studio nombra los `DynamicFrames` que devuelven los nodos del diagrama de trabajo de manera secuencial en función del orden de creación. Utilice uno de los siguientes métodos de nomenclatura en el código:
   + Generación de código clásico: utilice nombres funcionales para hacer referencia a los nodos del diagrama de trabajo.
     + Nodo de origen de datos: `DataSource0`, `DataSource1`, `DataSource2`, etc.
     + Nodos de transformación: `Transform0`, `Transform1`, `Transform2`, etc.
   + Nueva generación de código: utilice el nombre especificado en la pestaña **Node properties** (Propiedades del nodo) de un nodo, anexado con ‘`_node1`’, ‘`_node2`’, y así sucesivamente. Por ejemplo, `S3bucket_node1`, `ApplyMapping_node2`, `S3bucket_node2`, `MyCustomNodeName_node1`.

   Para obtener más información acerca del nuevo generador de código, consulte [Generación de código de script](job-editor-features.md#code-gen).

Los siguientes ejemplos muestran el formato del código que se va a introducir en el cuadro de código:

------
#### [ Python ]

En el siguiente ejemplo se toma el primer `DynamicFrame` recibido, se convierte en un valor de `DataFrame` para aplicar el método de filtro nativo (se mantienen solo los registros que tienen más de 1000 votos), luego se convierte nuevamente en un `DynamicFrame` antes de que se devuelva.

```
def FilterHighVoteCounts (glueContext, dfc) -> DynamicFrameCollection:
    df = dfc.select(list(dfc.keys())[0]).toDF()
    df_filtered = df.filter(df["vote_count"] > 1000)
    dyf_filtered = DynamicFrame.fromDF(df_filtered, glueContext, "filter_votes")
    return(DynamicFrameCollection({"CustomTransform0": dyf_filtered}, glueContext))
```

------
#### [ Scala ]

En el siguiente ejemplo se toma el primer `DynamicFrame` recibido, se convierte en un valor de `DataFrame` para aplicar el método de filtro nativo (se mantienen solo los registros que tienen más de 1000 votos), luego se convierte nuevamente en un `DynamicFrame` antes de que se devuelva.

```
object FilterHighVoteCounts {
  def execute(glueContext : GlueContext, input : Seq[DynamicFrame]) : Seq[DynamicFrame] = {
    val frame = input(0).toDF()
    val filtered = DynamicFrame(frame.filter(frame("vote_count") > 1000), glueContext)
    Seq(filtered)
  }
}
```

------

## Edición de esquema para un nodo de transformación personalizado
<a name="transforms-custom-editschema"></a>

Cuando utiliza un nodo de transformación personalizado, AWS Glue Studio no puede inferir automáticamente los esquemas de salida creados por la transformación. Utilice el editor de esquemas para describir los cambios de esquema implementados por el código de transformación personalizado.

Un nodo de código personalizado puede tener cualquier número de nodos principales, cada uno de los cuales proporciona un `DynamicFrame` como entrada para su código personalizado. Un nodo de código personalizado devuelve una recopilación de `DynamicFrames`. Cada `DynamicFrame` que se utiliza como entrada tiene asociado un esquema. Debe agregar un esquema que describa cada `DynamicFrame` devuelto por el nodo de código personalizado. 

**nota**  
 Cuando configura su propio esquema en una transformación personalizada, AWS Glue Studio no hereda esquemas de nodos anteriors. Para actualizar el esquema, seleccione el nodo de transformación personalizada y, a continuación, elija la pestaña Data preview (Vista previa de datos). Una vez generada la vista previa, elija 'Use Preview Schema' (Usar esquema de vista previa). A continuación, el esquema será reemplazado por el esquema utilizando los datos de vista previa. 

**Para editar los esquemas de un nodo de transformación personalizado**

1. Con el nodo de transformación personalizado seleccionado en el diagrama de trabajo, elija la pestaña **Output schema (Esquema de salida)**, en el panel de detalles del nodo. 

1. Seleccione **Edit (Editar)** para realizar cambios al esquema. 

   Si tiene claves de propiedad de datos anidadas, como una matriz u objeto, puede elegir el ícono **Expand-Rows (Expandir filas)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/expand-rows-icon.png)) en la parte superior derecha del panel de cada esquema para expandir la lista de claves de propiedades de datos secundarias. Después de seleccionarlo, el ícono cambia a **Collapse-Rows (Contraer filas)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/collapse-rows-icon.png)), que puede elegir para contraer la lista de claves de propiedad secundarias.

1. Modifique el esquema mediante las siguientes acciones en la sección situada en la parte derecha de la página:
   + Para cambiar el nombre de una clave de propiedad, coloque el cursor en el cuadro de texto **Key (Clave)** para la clave de propiedad y, a continuación, escriba el nuevo nombre.
   + Para cambiar el tipo de datos de una clave de propiedad, utilice la lista para elegir un nuevo tipo de datos para la clave de propiedad.
   + Para agregar una nueva clave de propiedad de nivel superior al esquema, elija el ícono **Overflow (Desbordamiento)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-schema-actions-button.png)) a la izquierda del botón **Cancel (Cancelar)** y luego elija **Add root key (Agregar clave raíz)**.
   + Para agregar una clave de propiedad secundaria al esquema, elija el ícono **Add-Key (Agrega clave)** ![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/filter-add-icon.png) asociado a la clave principal. Escriba un nombre para la clave secundaria y elija el tipo de datos.
   + Para eliminar una clave de propiedad del esquema, elija el ícono **Remove (Eliminar)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/delete-icon-black.png)) en el extremo derecho del nombre de la clave. 

1. Si su código de transformación personalizado utiliza múltiples `DynamicFrames`, puede agregar esquemas de salida adicionales. 
   + Para agregar un esquema nuevo, vacío, elija la opción **Overflow (Desbordamiento)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-schema-actions-button.png)) y, a continuación, elija **Add output schema (Agregar esquema de salida)**.
   + Para copiar un esquema existente en un nuevo esquema de salida, asegúrese de que el esquema que desea copiar se muestra en el selector de esquema. Elija el ícono **Overflow (Desbordamiento)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-schema-actions-button.png)) y, a continuación, elija **Duplicate (Duplicar)**.

   Si desea eliminar un esquema de salida, asegúrese de que el esquema que desea copiar se muestra en el selector de esquema. Elija el ícono **Overflow (Desbordamiento)** (![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-schema-actions-button.png)) y, a continuación, elija **Delete (Eliminar)**.

1. Agregue nuevas claves raíz al nuevo esquema o edite las claves duplicadas. 

1. Cuando modifique los esquemas de salida, elija el botón **Apply (Aplicar)** para guardar los cambios y salir del editor de esquemas.

   Si no desea guardar los cambios, elija **Cancel (Cancelar)**.

## Configurar la salida de transformación personalizada
<a name="transforms-custom-output"></a>

Una transformación de código personalizado devuelve una recopilación de `DynamicFrames`, aún cuando haya solo un `DynamicFrame` en el conjunto de resultados. 

**Para procesar la salida desde un nodo de transformación personalizado**

1. Agregue un nodo de transformación *SelectFromCollection (Seleccionar desde la recopilación)*, que tenga el nodo de transformación personalizado como su nodo principal. Actualice esta transformación para indicar qué conjunto de datos desea utilizar. Para obtener más información, consulte [Uso de SelectFromCollection (Seleccionar desde la recopilación) para elegir qué conjunto de datos desea mantener](transforms-configure-select-collection.md).

1. Agregue una transformación *Seleccionar desde recopilación* adicional al diagrama de trabajo si desea utilizar `DynamicFrames` adicionales, producidos por el nodo de transformación personalizado. 

   Considere un escenario en el que agrega un nodo de transformación personalizado para dividir un conjunto de datos de vuelo en varios conjuntos de datos, pero duplica algunas de las claves de propiedad de identificación en cada esquema de salida, como la fecha de vuelo o el número de vuelo. Agregue un nodo de transformación *Seleccionar desde la recopilación* para cada esquema de salida, con el nodo de transformación personalizado como su nodo principal.

1. (Opcional) a continuación, puede usar cada nodo de transformación *Seleccionar desde la recopilación* como entrada para otros nodos del trabajo, o como nodo principal para un nodo de destino de datos.

# Transformación de datos con transformaciones visuales personalizadas
<a name="custom-visual-transform"></a>

 Las transformaciones visuales personalizadas permiten crear transformaciones y ponerlas a disposición de los usuarios para que las utilicen en trabajos de AWS Glue Studio. Las transformaciones visuales personalizadas permiten a los desarrolladores de ETL, que tal vez no estén familiarizados con la codificación, buscar y utilizar una biblioteca de transformaciones cada vez mayor mediante la interfaz de AWS Glue Studio. 

 Puede crear una transformación visual personalizada y, a continuación, subirla a Amazon S3 para que esté disponible para su uso a través del editor visual en AWS Glue Studio para ocuparse de estos trabajos. 

**Topics**
+ [Introducción a las transformaciones visuales personalizadas](custom-visual-transform-getting-started.md)
+ [Paso 1. Crear un archivo de configuración JSON](custom-visual-transform-json-config-file.md)
+ [Paso 2. Implementar la lógica de transformación](custom-visual-transform-implementation.md)
+ [Paso 3. Validar y solucionar los problemas de las transformaciones visuales personalizadas en AWS Glue Studio](custom-visual-transform-validation.md)
+ [Paso 4. Actualizar las transformaciones visuales personalizadas según sea necesario](custom-visual-transform-updating-transforms.md)
+ [Paso 5. Usar transformaciones visuales personalizadas en AWS Glue Studio](custom-visual-transform-create-gs.md)
+ [Ejemplos de uso](custom-visual-transform-example-json.md)
+ [Ejemplos de scripts visuales personalizados](custom-visual-transform-example-scripts.md)
+ [Video](#custom-visual-transform-video)

# Introducción a las transformaciones visuales personalizadas
<a name="custom-visual-transform-getting-started"></a>

 Para crear una transformación visual personalizada, siga estos pasos. 
+  Paso 1. Crear un archivo de configuración JSON 
+  Paso 2. Implementar la lógica de transformación 
+  Paso 3. Validar la transformación visual personalizada 
+  Paso 4. Actualizar la transformación visual personalizada según sea necesario 
+  Paso 5. Utilizar la transformación visual personalizada en AWS Glue Studio 

 Para empezar, configure el bucket de Amazon S3 y continúe con el **Paso 1. Crear un archivo de configuración JSON.** 

## Requisitos previos
<a name="custom-visual-transform-prerequisites"></a>

 Las transformaciones proporcionadas por los clientes residen en una cuenta de AWS de cliente. Esa cuenta es la propietaria de las transformaciones y, por lo tanto, tiene todos los permisos para verlas (buscarlas y usarlas), editarlas o eliminarlas. 

 Para utilizar una transformación personalizada en AWS Glue Studio, tendrá que crear y subir dos archivos al bucket de activos de Amazon S3 de esa cuenta de AWS: 
+  **Archivo Python**: contiene la función de transformación 
+  **Archivo JSON**: describe la transformación. También se conoce como el archivo de configuración que se requiere para definir la transformación. 

 Para emparejar los archivos, utilice el mismo nombre para ambos. Por ejemplo: 
+  myTransform.json 
+  myTransform.py 

 Si lo desea, puede dar a una transformación visual personalizada un icono personalizado al proporcionar un **archivo SVG** que contenga el icono. Para emparejar los archivos, utilice el mismo nombre para el icono: 
+  myTransform.svg 

 AWS Glue Studio los combinará automáticamente mediante los nombres de archivo correspondientes. Los nombres de los archivos no pueden ser los mismos para los módulos existentes. 

## Convención recomendada para el nombre del archivo de transformación
<a name="custom-visual-transform-recommended-transform-file-name"></a>

 AWS Glue Studio importará el archivo como un módulo (por ejemplo, `import myTransform`) en el script del trabajo. Por lo tanto, el nombre del archivo debe seguir las mismas reglas de nomenclatura establecidas para los nombres de variables de Python (identificadores). En concreto, deben empezar por una letra o un guion bajo y estar compuestos en su totalidad por letras, dígitos o guiones bajos. 

**nota**  
 Asegúrese de que el nombre del archivo de transformación no entre en conflicto con los módulos de Python cargados existentes (por ejemplo, `sys, array, copy`, etc.) para evitar problemas inesperados en tiempo de ejecución. 

## Configuración del bucket de Amazon S3
<a name="custom-visual-transform-setting-up-s3"></a>

 Las transformaciones que cree se almacenan en Amazon S3 y son propiedad de su cuenta de AWS. Para crear nuevas transformaciones visuales personalizadas, basta con que suba archivos (json y py) a la carpeta de activos de Amazon S3, en la que se almacenan actualmente los scripts de todos los trabajos (por ejemplo, `s3://aws-glue-assets-<accountid>-<region>/transforms`). Si utiliza un icono personalizado, cárguelo también. De forma predeterminada, AWS Glue Studio leerá todos los archivos. json de la carpeta /transforms en el mismo bucket de S3. 

# Paso 1. Crear un archivo de configuración JSON
<a name="custom-visual-transform-json-config-file"></a>

 Se necesita un archivo de configuración JSON para definir y describir la transformación visual personalizada. A continuación se indica el esquema para el archivo de configuración. 

## Estructura del archivo JSON
<a name="custom-visual-transform-json-file-structure"></a>

 **Fields** 
+  `name: string`: (obligatorio) nombre del sistema de transformación utilizado para identificar las transformaciones. Siga las mismas reglas de nomenclatura establecidas para los nombres de variables de Python (identificadores). En concreto, deben empezar por una letra o un guion bajo y estar compuestos en su totalidad por letras, dígitos o guiones bajos. 
+  `displayName: string`: (opcional) nombre de la transformación que se muestra en el editor de trabajos visuales de AWS Glue Studio. Si no se especifica ningún valor de `displayName`, el valor de `name` se usa como nombre de la transformación en AWS Glue Studio. 
+  `description: string`: (opcional) la descripción de la transformación se muestra en AWS Glue Studio y se puede buscar. 
+  `functionName: string`: (obligatorio) el nombre de la función de Python se utiliza para identificar la función que se va a invocar en el script de Python. 
+  `path: string`: (opcional) la ruta completa de Amazon S3 al archivo de origen de Python. Si no se especifica, AWS Glue utiliza la coincidencia de nombres de archivo para emparejar los archivos .json y .py. Por ejemplo, el nombre del archivo JSON (`myTransform.json`) se emparejará con el archivo Python (`myTransform.py`) en la misma ubicación de Amazon S3. 
+  `parameters: Array of TransformParameter object`: (opcional) la lista de parámetros que se va a mostrar al configurarlos en el editor visual de AWS Glue Studio. 

<a name="transformparameter-fields"></a> **Campos de TransformParameters** 
+  `name: string`: (obligatorio) el nombre del parámetro que se pasará a la función de Python como argumento con nombre en el script del trabajo. Siga las mismas reglas de nomenclatura establecidas para los nombres de variables de Python (identificadores). En concreto, deben empezar por una letra o un guion bajo y estar compuestos en su totalidad por letras, dígitos o guiones bajos. 
+  `displayName: string`: (opcional) nombre de la transformación que se muestra en el editor de trabajos visuales de AWS Glue Studio. Si no se especifica ningún valor de `displayName`, el valor de `name` se usa como nombre de la transformación en AWS Glue Studio. 
+  `type: string`: (obligatorio) el tipo de parámetro que acepta los tipos de datos comunes de Python. Valores válidos: “str” \$1 “int” \$1 “float” \$1 “list” \$1 “bool”. 
+  `isOptional: boolean`: (opcional) determina si el parámetro es opcional. De forma predeterminada, todos los parámetros son obligatorios. 
+  `description: string`: (opcional) la descripción se muestra en AWS Glue Studio para ayudar al usuario a configurar el parámetro de transformación. 
+  `validationType: string`: (opcional) define la forma en que se valida este parámetro. Actualmente, solo admite expresiones regulares. De forma predeterminada, el tipo de validación se establece en `RegularExpression`. 
+  `validationRule: string`: (opcional) expresión regular que se utiliza para validar la entrada del formulario antes de enviarlo cuando `validationType` se establece en `RegularExpression`. La sintaxis de las expresiones regulares debe ser compatible con las [especificaciones de RegExp de ECMAScript](https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects). 
+  `validationMessage: string`: (opcional) el mensaje que se mostrará cuando se produzca un error en la validación. 
+  `listOptions: An array of TransformParameterListOption object` O un `string` o el valor de cadena 'columna': (opcional) opciones para mostrar en el control de UI Seleccionar o Selección múltiple. Acepta una lista de valores separados por comas o un objeto JSON fuertemente tipado de tipo `TransformParameterListOption`. También puede rellenar dinámicamente la lista de columnas del esquema del nodo principal al especificar el valor de cadena “column”. 
+  `listType: string`: (opcional) se definen los tipos de opciones para type = “list”. Valores válidos: “str” \$1 “int” \$1 “float” \$1 “list” \$1 “bool”. Tipo de parámetro que acepta los tipos de datos comunes de Python. 

 **Campos de TransformParameterListOption** 
+  `value: string | int | float | bool`: (obligatorio) valor de la opción. 
+  `label: string`: (opcional) etiqueta de la opción que se muestra en el menú desplegable de selección. 

## Parámetros de transformación en AWS Glue Studio
<a name="custom-visual-transform-parameters"></a>

 De forma predeterminada, los parámetros son obligatorios a menos que se marquen como `isOptional` en el archivo .json. En AWS Glue Studio, los parámetros se muestran en la pestaña **Transform** (Transformación). En el ejemplo se muestran parámetros definidos por el usuario, como Email Address (Dirección de correo electrónico), Phone Number (Número de teléfono), Your age (Su edad), Your gender (Su sexo) y Your origin country (Su país de origen). 

![\[En la captura de pantalla se muestra una transformación visual personalizada seleccionada y la pestaña Transform (Transformación) con parámetros definidos por el usuario.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-parameters.png)


 Puede aplicar algunas validaciones en AWS Glue Studio mediante expresiones regulares en el archivo json; para ello, especifique el parámetro `validationRule` y un mensaje de validación en `validationMessage`. 

```
      "validationRule": "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$",
      "validationMessage": "Please enter a valid US number"
```

**nota**  
 Como la validación se lleva a cabo en el navegador, la sintaxis de la expresión regular debe ser compatible con las [especificaciones de RegExp de ECMAScript](https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects). La sintaxis de Python no es compatible con estas expresiones regulares. 

 Al agregar la validación, se impedirá al usuario guardar el trabajo con una entrada de usuario incorrecta. AWS Glue Studio muestra el mensaje de validación, tal como se muestra en el ejemplo: 

![\[En la captura de pantalla se muestra un parámetro de transformación visual personalizada con un mensaje de error de validación: Please enter a valid email address (Ingrese una dirección de correo electrónico válida).\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-validation-message.png)


 Los parámetros se muestran en AWS Glue Studio en función de la configuración de los parámetros. 
+  Se muestra un campo de entrada de texto cuando el valor de `type` es uno de los siguientes: `str`, `int` o `float`. Por ejemplo, en la captura de pantalla se muestran los campos de entrada para los parámetros “Dirección de correo electrónico” y “Su edad”.   
![\[En la captura de pantalla, se muestra un parámetro de transformación visual personalizada con un campo de entrada de texto.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-email-address.png)  
![\[En la captura de pantalla, se muestra un parámetro de transformación visual personalizada con un campo de entrada de texto.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-your-age.png)
+  Cuando el valor de `type` es `bool`, se muestra una casilla de verificación.   
![\[En la captura de pantalla, se muestra un parámetro de transformación visual personalizada con un campo de entrada de texto.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-bool.png)
+  Cuando el valor de `type` es `str` y se proporciona `listOptions`, se muestra una lista de selección única.   
![\[En la captura de pantalla, se muestra un parámetro de transformación visual personalizada con un menú desplegable de lista de selección única.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-single-list.png)
+  Cuando el valor de `type` es `list` y se proporcionan `listOptions` y `listType`, se muestra una lista de selección múltiple.   
![\[En la captura de pantalla, se muestra un parámetro de transformación visual personalizada con un menú desplegable de lista.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-list-options.png)

### Mostrar un selector de columnas como parámetro
<a name="custom-visual-transform-parameters-column-selector"></a>

 Si la configuración requiere que el usuario elija una columna del esquema, puede mostrar un selector de columnas para que el usuario no tenga que escribir el nombre de la columna. Al configurar el campo `listOptions` como “columna”, AWS Glue Studio muestra dinámicamente un selector de columnas basado en el esquema de salida del nodo principal. AWS Glue Studio puede mostrar un selector de una o varias columnas. 

 En este ejemplo se usa el esquema: 

![\[La captura de pantalla muestra un ejemplo de esquema de salida.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/custom-visual-transform-example-schema.png)


**Para definir el parámetro de transformación visual personalizada para que muestre una sola columna:**

1.  En el archivo JSON, para el objeto `parameters`, establece el valor `listOptions` en “columna”. Esto permite al usuario elegir una columna de una lista de selección de AWS Glue Studio.   
![\[La captura de pantalla muestra un ejemplo de archivo JSON con el parámetro listOptions establecido en “columna” y la interfaz de usuario resultante en In AWS Glue Studio.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/custom-visual-transform-example-listoptions-column.png)

1.  También puede permitir la selección de varias columnas al definir el parámetro de la siguiente manera: 
   +  `listOptions: "column"` 
   +  `type: "list"`   
![\[La captura de pantalla muestra un ejemplo de archivo JSON con el parámetro listOptions establecido en “columna” y el tipo establecido en “lista” y la interfaz de usuario resultante en AWS Glue Studio.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/custom-visual-transform-example-listoptions-column-type-list.png)

# Paso 2. Implementar la lógica de transformación
<a name="custom-visual-transform-implementation"></a>

**nota**  
 Las transformaciones visuales personalizadas solo admiten scripts de Python. No se admite Scala. 

 Para agregar el código que implementa la función definida mediante el archivo de configuración .json, se recomienda colocar el archivo de Python en la misma ubicación que el archivo .json, con el mismo nombre, pero con la extensión “.py”. AWS Glue Studio empareja automáticamente los archivos .json y .py para que no tenga que especificar la ruta del archivo Python en el archivo de configuración. 

 En el archivo de Python, agregue la función declarada, con los parámetros con nombre configurados y regístrela para que se pueda utilizar en `DynamicFrame`. A continuación, se muestra un ejemplo de un archivo de Python: 

```
from awsglue import DynamicFrame

# self refers to the DynamicFrame to transform, 
# the parameter names must match the ones defined in the config
# if it's optional, need to provide a default value
def myTransform(self, email, phone, age=None, gender="", 
                      country="", promotion=False):
   resulting_dynf = # do some transformation on self 
   return resulting_dynf
   
DynamicFrame.myTransform = myTransform
```

 Se recomienda utilizar un cuaderno de AWS Glue para desarrollar y probar el código de Python de la forma más rápida. Consulte [Introducción a los cuadernos en AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/ug/notebook-getting-started.html) 

 Para ilustrar cómo implementar la lógica de transformación, la transformación visual personalizada del ejemplo siguiente es una transformación para filtrar los datos entrantes y conservar solo los datos relacionados con un estado concreto de EE. UU. El archivo .json contiene el parámetro para `functionName` como `custom_filter_state` y dos argumentos (“state” y “colName” con el tipo “str”). 

 El archivo .json de configuración de ejemplo es el siguiente: 

```
{
"name": "custom_filter_state",
"displayName": "Filter State",
"description": "A simple example to filter the data to keep only the state indicated.",
"functionName": "custom_filter_state",
"parameters": [
   {
    "name": "colName",
    "displayName": "Column name",
    "type": "str",
    "description": "Name of the column in the data that holds the state postal code"
   },
   {
    "name": "state",
    "displayName": "State postal code",
    "type": "str",
    "description": "The postal code of the state whole rows to keep"
   }   
  ]
}
```

**Implementación del script complementario en Python**

1.  Inicie un cuaderno de AWS Glue y ejecute la celda inicial proporcionada para iniciar la sesión. Al ejecutar la celda inicial, se crean los componentes básicos necesarios. 

1.  Cree una función que filtre tal y como se describe en el ejemplo y regístrela en `DynamicFrame`. Copie el código siguiente y péguelo en una celda del cuaderno de AWS Glue. 

   ```
   from awsglue import DynamicFrame
   
   def custom_filter_state(self, colName, state):
       return self.filter(lambda row: row[colName] == state)
   
   DynamicFrame.custom_filter_state = custom_filter_state
   ```

1.  Cree o cargue datos de muestra para probar el código en la misma celda o en una nueva. Si agrega los datos de muestra en una celda nueva, no olvide ejecutar la celda. Por ejemplo: 

   ```
   # A few of rows of sample data to test
   data_sample = [
       {"state": "CA", "count": 4},
       {"state": "NY", "count": 2},
       {"state": "WA", "count": 3}    
   ]
   df1 = glueContext.sparkSession.sparkContext.parallelize(data_sample).toDF()
   dynf1 = DynamicFrame.fromDF(df1, glueContext, None)
   ```

1.  Haga pruebas para validar “custom\$1filter\$1state” con distintos argumentos:   
![\[En la captura de pantalla, se muestra una celda de un cuaderno de AWS Glue con los argumentos pasados a la función DynamicFrame.show.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-notebook-test-python.png)

1.  Tras ejecutar varias pruebas, guarde el código con la extensión .py y asigne un nombre al archivo .py que refleje el nombre del archivo .json. Los archivos .py y .json deben estar en la carpeta de la misma transformación. 

    Copie el siguiente código, péguelo en un archivo y cámbiele el nombre con una extensión de archivo .py. 

   ```
   from awsglue import DynamicFrame
   
   def custom_filter_state(self, colName, state):
       return self.filter(lambda row: row[colName] == state)
   
   DynamicFrame.custom_filter_state = custom_filter_state
   ```

1.  En AWS Glue Studio, abra un trabajo visual y agregue la transformación al trabajo; para ello, selecciónela en la lista **Transforms** (Transformaciones) disponibles. 

    Para reutilizar esta transformación en el código de un script de Python, agregue la ruta de Amazon S3 al archivo .py en el trabajo, en “Referenced files path” (Ruta de archivos a la que se hace referencia), y en el script. Por último, importe el nombre del archivo de Python (sin la extensión); para ello, agréguelo a la parte superior del archivo. Por ejemplo: `import` <nombre del archivo (sin la extensión)> 

# Paso 3. Validar y solucionar los problemas de las transformaciones visuales personalizadas en AWS Glue Studio
<a name="custom-visual-transform-validation"></a>

 AWS Glue Studio valida el archivo de configuración JSON antes de cargar las transformaciones visuales personalizadas en AWS Glue Studio. La validación incluye lo siguiente: 
+  Presencia de campos obligatorios 
+  Validación de formato JSON 
+  Parámetros incorrectos o no válidos 
+  Presencia de los archivos .py y .json en la misma ruta de Amazon S3 
+  Coincidencia de los nombres de los archivos .py y .json 

 Si la validación se lleva a cabo correctamente, la transformación aparece en la lista **Actions** (Acciones) disponibles del editor visual. Si se ha proporcionado un icono personalizado, debería estar visible junto a la **Acción**. 

 Si se produce un error durante la validación, AWS Glue Studio no carga la transformación visual personalizada. 

# Paso 4. Actualizar las transformaciones visuales personalizadas según sea necesario
<a name="custom-visual-transform-updating-transforms"></a>

 Una vez creado y utilizado, el script de la transformación se puede actualizar siempre que la transformación siga la definición JSON correspondiente: 
+  El nombre utilizado durante la asignación a DynamicFrame debe coincidir con el valor de `functionName` de JSON. 
+  Los argumentos de la función deben definirse en el archivo JSON tal y como se describe en [Paso 1. Crear un archivo de configuración JSON](custom-visual-transform-json-config-file.md). 
+  La ruta de Amazon S3 del archivo de Python no puede cambiar, ya que los trabajos dependen directamente de ella. 

**nota**  
 Si es necesario llevara a cabo alguna actualización, asegúrese de que el script y el archivo .json se actualicen de forma coherente y que todos los trabajos visuales se vuelvan a guardar correctamente con la nueva transformación. Si los trabajos visuales no se guardan después de llevar a cabo las actualizaciones, estas no se aplicarán ni validarán. Si se cambia el nombre del archivo de script de Python o no se coloca junto al archivo .json, debe especificar la ruta completa en el archivo .json. 

**Icono personalizado**

Si determina que el icono predeterminado de la **acción** no la distingue visualmente como parte de sus flujos de trabajo, puede proporcionar un icono personalizado, como se describe en [Introducción a las transformaciones visuales personalizadas](custom-visual-transform-getting-started.md). Puede actualizar el icono mediante la actualización del SVG correspondiente alojado en Amazon S3.

Para obtener mejores resultados, diseñe la imagen para que se vea a 32 x 32 píxeles según las pautas del sistema de diseño de Cloudscape. Para obtener más información sobre las pautas de Cloudscape, consulte la [documentación de Cloudscape](https://cloudscape.design/foundation/visual-foundation/iconography/#custom-icons)

# Paso 5. Usar transformaciones visuales personalizadas en AWS Glue Studio
<a name="custom-visual-transform-create-gs"></a>

 Para utilizar una transformación visual personalizada en AWS Glue Studio, suba los archivos de origen y configuración y, a continuación, seleccione la transformación en el menú **Action** (Acción). Todos los parámetros que necesiten valores o entrada están disponibles en la pestaña **Transform** (Transformación). 

1.  Suba los dos archivos (el archivo de origen de Python y el archivo de configuración JSON) a la carpeta de activos de Amazon S3 en la que se almacenan los scripts del trabajo. De forma predeterminada, AWS Glue extrae todos los archivos JSON de la carpeta **/transforms** del mismo bucket de Amazon S3. 

1.  En el menú **Action** (Acción), seleccione la transformación visual personalizada. Se nombra con el valor de `displayName` de la transformación o el nombre que especificó en el archivo de configuración .json. 

1.  Ingrese valores para los parámetros configurados en el archivo de configuración.   
![\[En la captura de pantalla se muestra una transformación visual personalizada con parámetros que el usuario debe completar en la pestaña Transform (Transformación).\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/dynamic-transform-parameters.png)

# Ejemplos de uso
<a name="custom-visual-transform-example-json"></a>

 A continuación se incluye es un ejemplo de todos los parámetros posibles en un archivo de configuración .json. 

```
{
  "name": "MyTransform",
  "displayName": "My Transform",
  "description": "This transform description will be displayed in UI",
  "functionName": "myTransform",
  "parameters": [
      {
      "name": "email",
      "displayName": "Email Address",
      "type": "str",
      "description": "Enter your work email address below",
      "validationType": "RegularExpression",
      "validationRule": "^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$",
      "validationMessage": "Please enter a valid email address"
    },
    {
      "name": "phone",
      "displayName": "Phone Number",
      "type": "str",
      "description": "Enter your mobile phone number below",
      "validationRule": "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$",
      "validationMessage": "Please enter a valid US number"
    },
    {
      "name": "age",
      "displayName": "Your age",
      "type": "int",
      "isOptional": true
    },
    {
      "name": "gender",
      "displayName": "Your gender",
      "type": "str",
      "listOptions": [
            {"label": "Male", "value": "male"},
            {"label": "Female", "value": "female"},
            {"label": "Other", "value": "other"}
        ],
      "isOptional": true
    },
    {
      "name": "country",
      "displayName": "Your origin country ?",
      "type": "list",
      "listOptions": "Afghanistan,Albania,Algeria,American Samoa,Andorra,Angola,Anguilla,Antarctica,Antigua and Barbuda,Argentina,Armenia,Aruba,Australia,Austria,Azerbaijan,Bahamas,Bahrain,Bangladesh,Barbados,Belarus,Belgium,Belize,Benin,Bermuda,Bhutan,Bolivia,Bosnia and Herzegovina,Botswana,Bouvet Island,Brazil,British Indian Ocean Territory,Brunei Darussalam,Bulgaria,Burkina Faso,Burundi,Cambodia,Cameroon,Canada,Cape Verde,Cayman Islands,Central African Republic,Chad,Chile,China,Christmas Island,Cocos (Keeling Islands),Colombia,Comoros,Congo,Cook Islands,Costa Rica,Cote D'Ivoire (Ivory Coast),Croatia (Hrvatska,Cuba,Cyprus,Czech Republic,Denmark,Djibouti,Dominica,Dominican Republic,East Timor,Ecuador,Egypt,El Salvador,Equatorial Guinea,Eritrea,Estonia,Ethiopia,Falkland Islands (Malvinas),Faroe Islands,Fiji,Finland,France,France,Metropolitan,French Guiana,French Polynesia,French Southern Territories,Gabon,Gambia,Georgia,Germany,Ghana,Gibraltar,Greece,Greenland,Grenada,Guadeloupe,Guam,Guatemala,Guinea,Guinea-Bissau,Guyana,Haiti,Heard and McDonald Islands,Honduras,Hong Kong,Hungary,Iceland,India,Indonesia,Iran,Iraq,Ireland,Israel,Italy,Jamaica,Japan,Jordan,Kazakhstan,Kenya,Kiribati,Korea (North),Korea (South),Kuwait,Kyrgyzstan,Laos,Latvia,Lebanon,Lesotho,Liberia,Libya,Liechtenstein,Lithuania,Luxembourg,Macau,Macedonia,Madagascar,Malawi,Malaysia,Maldives,Mali,Malta,Marshall Islands,Martinique,Mauritania,Mauritius,Mayotte,Mexico,Micronesia,Moldova,Monaco,Mongolia,Montserrat,Morocco,Mozambique,Myanmar,Namibia,Nauru,Nepal,Netherlands,Netherlands Antilles,New Caledonia,New Zealand,Nicaragua,Niger,Nigeria,Niue,Norfolk Island,Northern Mariana Islands,Norway,Oman,Pakistan,Palau,Panama,Papua New Guinea,Paraguay,Peru,Philippines,Pitcairn,Poland,Portugal,Puerto Rico,Qatar,Reunion,Romania,Russian Federation,Rwanda,Saint Kitts and Nevis,Saint Lucia,Saint Vincent and The Grenadines,Samoa,San Marino,Sao Tome and Principe,Saudi Arabia,Senegal,Seychelles,Sierra Leone,Singapore,Slovak Republic,Slovenia,Solomon Islands,Somalia,South Africa,S. Georgia and S. Sandwich Isls.,Spain,Sri Lanka,St. Helena,St. Pierre and Miquelon,Sudan,Suriname,Svalbard and Jan Mayen Islands,Swaziland,Sweden,Switzerland,Syria,Tajikistan,Tanzania,Thailand,Togo,Tokelau,Tonga,Trinidad and Tobago,Tunisia,Turkey,Turkmenistan,Turks and Caicos Islands,Tuvalu,Uganda,Ukraine,United Arab Emirates,United Kingdom (Britain / UK),United States of America (USA),US Minor Outlying Islands,Uruguay,Uzbekistan,Vanuatu,Vatican City State (Holy See),Venezuela,Viet Nam,Virgin Islands (British),Virgin Islands (US),Wallis and Futuna Islands,Western Sahara,Yemen,Yugoslavia,Zaire,Zambia,Zimbabwe",
      "description": "What country were you born in?",
      "listType": "str",
      "isOptional": true
    },
    {
      "name": "promotion",
      "displayName": "Do you want to receive promotional newsletter from us?",
      "type": "bool",
      "isOptional": true
    }
  ]
}
```

# Ejemplos de scripts visuales personalizados
<a name="custom-visual-transform-example-scripts"></a>

 En los siguientes ejemplos, se llevan a cabo transformaciones equivalentes. Sin embargo, el segundo ejemplo (SparkSQL) es el más limpio y eficiente, seguido de la UDF de Pandas y, finalmente, las asignaciones de nivel bajo del primer ejemplo. El siguiente ejemplo es un ejemplo completo de una transformación sencilla para agregar dos columnas: 

```
from awsglue import DynamicFrame
 
# You can have other auxiliary variables, functions or classes on this file, it won't affect the runtime
def record_sum(rec, col1, col2, resultCol):
    rec[resultCol] = rec[col1] + rec[col2]
    return rec
 
 
# The number and name of arguments must match the definition on json config file
# (expect self which is the current DynamicFrame to transform
# If an argument is optional, you need to define a default value here
#  (resultCol in this example is an optional argument)
def custom_add_columns(self, col1, col2, resultCol="result"):
    # The mapping will alter the columns order, which could be important
    fields = [field.name for field in self.schema()]
    if resultCol not in fields:
        # If it's a new column put it at the end
        fields.append(resultCol)
    return self.map(lambda record: record_sum(record, col1, col2, resultCol)).select_fields(paths=fields)
 
 
# The name we assign on DynamicFrame must match the configured "functionName"
DynamicFrame.custom_add_columns = custom_add_columns
```

 El siguiente ejemplo es una transformación equivalente que aprovecha la API de SparkSQL. 

```
from awsglue import DynamicFrame
 
# The number and name of arguments must match the definition on json config file
# (expect self which is the current DynamicFrame to transform
# If an argument is optional, you need to define a default value here
#  (resultCol in this example is an optional argument)
def custom_add_columns(self, col1, col2, resultCol="result"):
    df = self.toDF()
    return DynamicFrame.fromDF(
        df.withColumn(resultCol, df[col1] + df[col2]) # This is the conversion logic
        , self.glue_ctx, self.name) 
 
 
# The name we assign on DynamicFrame must match the configured "functionName"
DynamicFrame.custom_add_columns = custom_add_columns
```

 En el siguiente ejemplo, se usa las mismas transformaciones, pero con una UDF de Pandas, que es más eficiente que usar una UDF simple. Para obtener más información sobre cómo escribir UDF de Pandas, consulte la [documentación de Apache Spark SQL](https://spark.apache.org/docs/3.1.1/api/python/reference/api/pyspark.sql.functions.pandas_udf.html). 

```
from awsglue import DynamicFrame
import pandas as pd
from pyspark.sql.functions import pandas_udf
 
# The number and name of arguments must match the definition on json config file
# (expect self which is the current DynamicFrame to transform
# If an argument is optional, you need to define a default value here
#  (resultCol in this example is an optional argument)
def custom_add_columns(self, col1, col2, resultCol="result"):
    @pandas_udf("integer")  # We need to declare the type of the result column
    def add_columns(value1: pd.Series, value2: pd.Series) → pd.Series:
        return value1 + value2
 
    df = self.toDF()
    return DynamicFrame.fromDF(
        df.withColumn(resultCol, add_columns(col1, col2)) # This is the conversion logic
        , self.glue_ctx, self.name) 
 
# The name we assign on DynamicFrame must match the configured "functionName"
DynamicFrame.custom_add_columns = custom_add_columns
```

## Video
<a name="custom-visual-transform-video"></a>

En el siguiente video, se ofrece una introducción a las transformaciones visuales personalizadas y se muestra cómo usarlas.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/xFpAhANcVcg/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/xFpAhANcVcg)


# Uso de marcos de lagos de datos con AWS Glue Studio
<a name="gs-data-lake-formats"></a>

## Descripción general
<a name="gs-data-lake-formats-overview"></a>

 Los marcos de lago de datos de código abierto simplifican el procesamiento progresivo de datos para los archivos almacenados en lagos de datos creados en Amazon S3. La versión 3.0 y versiones posteriores de AWS Glue admiten los siguientes marcos de almacenamiento de lagos de datos de código abierto: 
+  Apache Hudi 
+  Linux Foundation Delta Lake 
+  Apache Iceberg 

 A partir de la versión de AWS Glue 4.0, AWS Glue proporciona compatibilidad nativa con estos marcos para que pueda leer y escribir los datos que almacene en Amazon S3 de una manera consistente entre transacciones. No es necesario instalar ningún conector independiente ni completar pasos de configuración adicionales para utilizar estos marcos en trabajos de AWS Glue. 

 Los marcos de lagos de datos se pueden utilizar como origen o destino en AWS Glue Studio a través de trabajos del editor de scripts de Spark. Para obtener más información sobre el uso de Apache Hudi, Apache Iceberg y Delta Lake, consulte [Uso de marcos de lagos de datos con trabajos de ETL de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-datalake-native-frameworks.html). 

## Creación de formatos de tabla abiertos a partir de un origen de streaming de AWS Glue
<a name="gs-data-lake-formats-streaming"></a>

Los trabajos ETL en streaming de AWS Glue consumen continuamente datos de los orígenes de streaming, los limpian y transforman durante el tránsito y los ponen a disposición para su análisis en cuestión de segundos.

AWS ofrece una amplia selección de servicios para satisfacer sus necesidades. Un servicio de replicación de bases de datos, como AWS Database Migration Service, puede replicar los datos de sus sistemas de origen a Amazon S3, que normalmente aloja la capa de almacenamiento del lago de datos. Si bien es sencillo aplicar las actualizaciones en un sistema de administración de base de datos relacional (RDBMS) que respalda una aplicación de origen en línea, es difícil aplicar este proceso de CDC en sus lagos de datos. Los marcos de administración de datos de código abierto simplifican el procesamiento progresivo de datos y el desarrollo de canalizaciones de datos, y son una buena opción para resolver este problema.

Para obtener más información, consulte:
+ [Cree un lago de datos transaccional casi en tiempo real basado en Apache Hudi mediante AWS Glue Streaming](https://aws.amazon.com/blogs/big-data/create-an-apache-hudi-based-near-real-time-transactional-data-lake-using-aws-dms-amazon-kinesis-aws-glue-streaming-etl-and-data-visualization-using-amazon-quicksight/)
+ [Crear un lago de datos de Apache Iceberg en tiempo real alineado con el RGPD](https://aws.amazon.com/blogs/big-data/build-a-real-time-gdpr-aligned-apache-iceberg-data-lake/)

# Uso del marco de Hudi en AWS Glue Studio
<a name="gs-data-lake-formats-hudi"></a>

 Cuando crea o edita un trabajo, AWS Glue Studio agrega automáticamente las bibliotecas de Hudi correspondientes en su nombre según la versión de AWS Glue que utilice. Para obtener más información, consulte [Uso del marco de Hudi en AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format-hudi.html). 

## Uso del marco de Apache Hudi en los orígenes de datos del Catálogo de datos
<a name="gs-data-lake-formats-hudi-source-catalog"></a>

**Para agregar un formato de origen de datos de Hudi a un trabajo, haga lo siguiente:**

1.  En el menú Origen, seleccione Catálogo de datos de AWS Glue Studio. 

1.  En la pestaña **Propiedades del origen de datos**, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el tipo de formato como Apache Hudi y la dirección URL de Amazon S3.   
![\[La captura de pantalla muestra la pestaña de propiedades del origen de datos del nodo de origen del Catálogo de datos.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data_lake_formats_data_catalog_hudi.png)

## Uso del marco de Hudi en orígenes de datos de Amazon S3
<a name="gs-data-lake-formats-hudi-source-s3.title"></a>

1.  En el menú Origen, elija Amazon S3. 

1.  Si elige la tabla del Catálogo de datos como el tipo de origen de Amazon S3, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el formato como Apache Hudi y la dirección URL de Amazon S3. 

1.  Si elige la ubicación de Amazon S3 como el **Tipo de origen de Amazon S3**, elija la dirección URL de Amazon S3 haciendo clic en **Examinar Amazon S3**. 

1.  En **Formato de datos**, seleccione Apache Hudi. 
**nota**  
 Si AWS Glue Studio no puede deducir el esquema de la carpeta o el archivo de Amazon S3 que ha seleccionado, elija **Opciones adicionales** para seleccionar una nueva carpeta o archivo.   
 En **Opciones adicionales**, elija una de las siguientes opciones en **Inferencia del esquema**:   
 Permitir que AWS Glue Studio elija automáticamente un archivo de muestra: AWS Glue Studio elegirá un archivo de muestra en la ubicación de Amazon S3 para poder deducir el esquema. En el campo **Archivo de muestra seleccionado de manera automática**, puede ver el archivo que se seleccionó automáticamente. 
 Elegir un archivo de muestra de Amazon S3: elija el archivo de Amazon S3 que va a utilizar haciendo clic en **Examinar Amazon S3**. 

1.  Haga clic en **Deducir esquema**. A continuación, puede ver el esquema de salida haciendo clic en la pestaña **Esquema de salida**. 

1.  Elija **Opciones adicionales** para introducir un par clave-valor.   
![\[La captura de pantalla muestra la sección Opciones adicionales de la pestaña Propiedades del origen de datos de un nodo de origen de datos de Amazon S3.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data_lake_formats_additional_options.png)

## Uso del marco de Apache Hudi en los destinos de datos
<a name="gs-data-lake-formats-hudi-target"></a>

### Uso del marco de Apache Hudi en los destinos de datos del Catálogo de datos
<a name="gs-data-lake-formats-hudi-target-catalog"></a>

1.  En el menú **Destino**, seleccione Catálogo de datos de AWS Glue Studio. 

1.  En la pestaña **Propiedades del origen de datos**, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el tipo de formato como Apache Hudi y la dirección URL de Amazon S3. 

#### Uso del marco de Apache Hudi en los destinos de datos de Amazon S3
<a name="gs-data-lake-formats-hudi-target-s3"></a>

 Introduzca valores o seleccione una de las opciones disponibles para configurar el formato Apache Hudi. Para obtener más información sobre Apache Hudi, consulte la [Documentación de Apache Hudi](https://hudi.apache.org/docs/overview). 

![\[La captura de pantalla muestra la sección Opciones adicionales de la pestaña Propiedades del origen de datos de un nodo de origen de datos de Amazon S3.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/hudi_s3_target_properties.png)

+  **Nombre de la tabla de Hudi**: este es el nombre de su tabla de Hudi. 
+  **Tipo de almacenamiento de Hudi**: elija entre dos opciones. 
  +  **Copiar durante la escritura**: se recomienda esta opción para optimizar el rendimiento de lectura. Este es el tipo de almacenamiento predeterminado de Hudi. Cada actualización crea una versión nueva de los archivos durante la escritura. 
  +  **Combinar durante la lectura**: se recomienda esta opción para minimizar la latencia de escritura. Las actualizaciones se registran en archivos delta basados en filas y se compactan según sea necesario para crear nuevas versiones de los archivos en columnas. 
+  **Operación de escritura de Hudi**: elija entre las siguientes opciones. 
  +  **Upsert**: esta es la operación predeterminada en la que los registros de entrada se etiquetan primero como inserciones o actualizaciones al consultar el índice. Se recomienda para la actualización de los datos existentes. 
  +  **Insert**: esta operación inserta registros, pero no comprueba si hay registros existentes, lo que puede generar duplicados. 
  +  **Bulk Insert**: esta operación inserta registros y se recomienda para grandes cantidades de datos. 
+  **Campos de clave de registro de Hudi**: utilice la barra de búsqueda para ubicar y elegir las claves de registro principales. Los registros en Hudi se identifican mediante una clave principal, que representa la combinación de una clave de registro y una ruta de partición a la que pertenece el registro. 
+  **Campo de combinación previa de Hudi**: este es el campo que se utiliza en la combinación previa antes de escribir realmente. Cuando dos registros tienen el mismo valor para la clave, AWS Glue Studio selecciona el que tiene el valor más alto para el campo de combinación previa. Establezca un campo con un valor incremental (por ejemplo, updated\$1at). 
+  **Tipo de compresión**: elija una de las opciones de tipo de compresión; sin comprimir, GZIP, LZO o Snappy. 
+  **Ubicación de destino de Amazon S3**: para elegir la ubicación de destino de Amazon S3, haga clic en **Examinar S3**. 
+  **Opciones de actualización del Catálogo de datos**: elija entre siguientes opciones. 
  +  Do not update the Data Catalog (No actualizar el Catálogo de datos): (predeterminado) seleccione esta opción si no desea que el trabajo actualice el Catálogo de datos, incluso si el esquema cambia o se agregan nuevas particiones. 
  +  Crear una tabla en el Catálogo de datos y en las ejecuciones posteriores, actualizar el esquema y agregar nuevas particiones: si elige esta opción, el trabajo crea la tabla en el Catálogo de datos durante la primera ejecución del trabajo. En las ejecuciones de trabajos posteriores, el trabajo actualiza la tabla del Catálogo de datos si cambia el esquema o se agregan nuevas particiones. 

     También debe seleccionar una base de datos en el Catálogo de datos e introducir un nombre de tabla. 
  +  Create a table in the Data Catalog and on subsequent runs, keep existing schema and add new partitions (Crear una tabla en el Catálogo de datos y en ejecuciones posteriores, mantener el esquema existente y agregar nuevas particiones): si elige esta opción, el trabajo crea la tabla en el Catálogo de datos durante la primera ejecución del trabajo. En las ejecuciones de trabajos posteriores, el trabajo actualiza la tabla del Catálogo de datos solo para agregar nuevas particiones. 

     También debe seleccionar una base de datos en el Catálogo de datos e introducir un nombre de tabla. 
+  Partition keys (Claves de partición): elija qué columnas utilizar como claves de partición en la salida. Para agregar más claves de partición, elija Add a partition key (Agregar una clave de partición). 
+  **Opciones adicionales**: introduzca un par clave-valor según sea necesario. 

## Generación de código a través de AWS Glue Studio
<a name="gs-data-lake-formats-hudi-generating-code"></a>

 Cuando se guarda el trabajo, los siguientes parámetros se agregan al trabajo si se detecta un origen o un destino de Hudi: 
+  `--datalake-formats`: una lista independiente de los formatos de lagos de datos detectados en el trabajo visual (ya sea eligiendo un “Formato” directamente o seleccionando una tabla del catálogo que cuenta con el respaldo de un lago de datos indirectamente). 
+  `--conf `: se genera en función del valor de `--datalake-formats`. Por ejemplo, si el valor de `--datalake-formats` es “hudi”, AWS Glue genera un valor de `spark.serializer=org.apache.spark.serializer.KryoSerializer —conf spark.sql.hive.convertMetastoreParquet=false` para este parámetro. 

## Anulación de bibliotecas proporcionadas por AWS Glue
<a name="gs-data-lake-formats-hudi-overriding-libraries"></a>

 Para usar una versión de Hudi no compatible con AWS Glue, puede especificar sus propios archivos JAR de la biblioteca de Hudi. Para usar su propio archivo JAR, haga lo siguiente: 
+  Utilice el parámetro de trabajo `--extra-jars`. Por ejemplo, `'--extra-jars': 's3pathtojarfile.jar'`. Para obtener más información, consulte [Parámetros de los trabajos de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html). 
+  No incluya `hudi` como valor para el parámetro de trabajo `--datalake-formats`. Al introducir una cadena en blanco como valor, se asegura de que AWS Glue no le proporcione automáticamente ninguna biblioteca de lagos de datos. Para obtener más información, consulte [Uso del marco de Hudi en AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format-hudi.html). 

# Uso del marco de Delta Lake en AWS Glue Studio
<a name="gs-data-lake-formats-delta"></a>

## Uso del marco de Delta Lake en los orígenes de datos
<a name="gs-data-lake-formats-delta-source"></a>

### Uso del marco de Delta Lake en los orígenes de datos de Amazon S3
<a name="gs-data-lake-formats-delta-lake-s3-data-source"></a>

1.  En el menú Origen, elija Amazon S3. 

1.  Si elige la tabla del Catálogo de datos como el tipo de origen de Amazon S3, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el formato como Delta Lake y la dirección URL de Amazon S3. 

1.  Elija **Opciones adicionales** para introducir un par clave-valor. Por ejemplo, un par clave-valor podría ser el siguiente: **clave**: timestampAsOf y **valor**: 2023-02-24 14:16:18.   
![\[La captura de pantalla muestra la sección Opciones adicionales de la pestaña Propiedades del origen de datos de un nodo de origen de datos de Amazon S3.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/data_lake_formats_additional_options.png)

1.  Si elige la ubicación de Amazon S3 como el **Tipo de origen de Amazon S3**, elija la dirección URL de Amazon S3 haciendo clic en **Examinar Amazon S3**. 

1.  En **Formato de datos**, elija Delta Lake. 
**nota**  
 Si AWS Glue Studio no puede deducir el esquema de la carpeta o el archivo de Amazon S3 que ha seleccionado, elija **Opciones adicionales** para seleccionar una nueva carpeta o archivo.   
 En **Opciones adicionales**, elija una de las siguientes opciones en **Inferencia del esquema**:   
 Permitir que AWS Glue Studio elija automáticamente un archivo de muestra: AWS Glue Studio elegirá un archivo de muestra en la ubicación de Amazon S3 para poder deducir el esquema. En el campo **Archivo de muestra seleccionado de manera automática**, puede ver el archivo que se seleccionó automáticamente. 
 Elegir un archivo de muestra de Amazon S3: elija el archivo de Amazon S3 que va a utilizar haciendo clic en **Examinar Amazon S3**. 

1.  Haga clic en **Deducir esquema**. A continuación, puede ver el esquema de salida haciendo clic en la pestaña **Esquema de salida**. 

### Uso del marco de Delta Lake en los orígenes de datos del Catálogo de datos
<a name="gs-data-lake-formats-delta-catalog"></a>

1.  En el menú **Origen**, seleccione Catálogo de datos de AWS Glue Studio. 

1.  En la pestaña **Propiedades del origen de datos**, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el tipo de formato como Delta Lake y la dirección URL de Amazon S3. 
**nota**  
 Si su origen de Delta Lake aún no está registrado como tabla del Catálogo de datos AWS Glue, tiene dos opciones:   
 Cree un rastreador de AWS Glue para el almacén de datos de Delta Lake. Para obtener más información, consulte [Cómo especificar opciones de configuración para un almacén de datos de Delta Lake](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#crawler-delta-lake). 
 Use un origen de datos de Amazon S3 para seleccionar su origen de datos de Delta Lake. Consulte [Uso del marco de Delta Lake en los orígenes de datos de Amazon S3](#gs-data-lake-formats-delta-lake-s3-data-source). 

## Uso de formatos de Delta Lake en los destinos de datos
<a name="gs-data-lake-formats-delta-target"></a>

### Uso de formatos de Delta Lake en los destinos de datos del Catálogo de datos
<a name="gs-data-lake-formats-delta-target-catalog"></a>

1.  En el menú **Destino**, seleccione Catálogo de datos de AWS Glue Studio. 

1.  En la pestaña **Propiedades del origen de datos**, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el tipo de formato como Delta Lake y la dirección URL de Amazon S3. 

### Uso de formatos de Delta Lake en los orígenes de datos de Amazon S3
<a name="gs-data-lake-formats-delta-target-s3"></a>

 Introduzca valores o seleccione una de las opciones disponibles para configurar el formato de Delta Lake. 
+  **Tipo de compresión**: elija una de las opciones de tipo de compresión; sin comprimir o Snappy. 
+  **Ubicación de destino de Amazon S3**: para elegir la ubicación de destino de Amazon S3, haga clic en **Examinar S3**. 
+  **Opciones de actualización del Catálogo de datos**: en el editor visual de Glue Studio, no se admite la actualización del Catálogo de datos para este formato. 
  +  Do not update the Data Catalog (No actualizar el Catálogo de datos): (predeterminado) seleccione esta opción si no desea que el trabajo actualice el Catálogo de datos, incluso si el esquema cambia o se agregan nuevas particiones. 
  +  Para actualizar el Catálogo de datos después de la ejecución del trabajo de AWS Glue, ejecute o programe un rastreador de AWS Glue. Para obtener más información, consulte [Cómo especificar opciones de configuración para un almacén de datos de Delta Lake](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html#crawler-delta-lake). 
+  **Claves de partición**: elija qué columnas utilizar como claves de partición en la salida. Para agregar más claves de partición, elija **Agregar una clave de partición**. 
+  Puede elegir **Opciones adicionales** para introducir un par clave-valor. Por ejemplo, un par clave-valor podría ser el siguiente: **clave**: timestampAsOf y **valor**: 2023-02-24 14:16:18. 

# Uso del marco Apache Iceberg en AWS Glue Studio
<a name="gs-data-lake-formats-iceberg"></a>

## Uso del marco de Apache Iceberg en los destinos de datos
<a name="gs-data-lake-formats-iceberg-target"></a>

### Uso del marco de Apache Iceberg en los destinos de datos del Catálogo de datos
<a name="gs-data-lake-formats-iceberg-target-catalog"></a>

1.  En el menú **Destino**, seleccione Catálogo de datos de AWS Glue Studio. 

1.  En la pestaña **Propiedades del origen de datos**, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el tipo de formato como Apache Iceberg y la dirección URL de Amazon S3. 

### Uso del marco de Apache Iceberg en los destinos de datos de Amazon S3
<a name="gs-data-lake-formats-iceberg-s3-data-targets"></a>

 Ingrese valores o seleccione una de las opciones disponibles para configurar el formato Apache Iceberg. 
+  **Formato**: elija **Apache Iceberg** en el menú desplegable. 
+  **Ubicación de destino de Amazon S3**: para elegir la ubicación de destino de Amazon S3, haga clic en **Examinar S3**. 
+  **Opciones de actualización del Catálogo de datos**: **cree una tabla en el Catálogo de datos y en las ejecuciones posteriores, mantenga el esquema existente y agregue nuevas particiones**. Debe estar seleccionado para continuar. Para escribir una nueva tabla Iceberg con AWS Glue requiere que Data Catalog esté configurado como catálogo para la tabla de Iceberg. Para actualizar una tabla de Iceberg existente que se haya registrado en Data Catalog, elija Data Catalog como destino. 
  +  **Base de datos**: elija la base de datos de Data Catalog. 
  +  **Table name**: escriba un nombre único para la tabla. Los nombres de las tablas de Apache Iceberg deben estar en minúsculas. Utilice guiones bajos si es necesario, ya que no se permiten espacios. Por ejemplo, “data\$1lake\$1format\$1tables”. 

![\[La captura de pantalla muestra las propiedades del destino de datos cuando se utiliza el marco Apache Iceberg en los destinos de datos de Amazon S3.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/apache-iceberg-data-target-properties.png)


## Uso del marco de Apache Iceberg en los orígenes de datos de Amazon S3
<a name="gs-data-lake-formats-iceberg-source"></a>

### Uso del marco de Apache Iceberg en los orígenes de datos del Catálogo de datos
<a name="gs-data-lake-formats-iceberg-source-data-catalog"></a>

1.  En el menú **Origen**, seleccione Catálogo de datos de AWS Glue Studio. 

1.  En la pestaña **Propiedades del origen de datos**, elija una base de datos y una tabla. 

1.  AWS Glue Studio muestra el tipo de formato como Apache Iceberg y la dirección URL de Amazon S3. 

![\[La captura de pantalla muestra las propiedades del destino de datos cuando se utiliza el marco Apache Iceberg en los orígenes de datos del catálogo del datos.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/apache-iceberg-data-source-properties.png)


### Uso del marco de Apache Iceberg en los orígenes de datos de Amazon S3
<a name="gs-data-lake-formats-iceberg-source-s3"></a>

 Apache Iceberg no está disponible como opción de datos para los nodos de origen de Amazon S3 en AWS Glue Studio. 

# Conexión con orígenes de datos mediante trabajos de ETL visuales
<a name="connecting-to-data-chapter"></a>

 Al crear un nuevo trabajo, puede usar conexiones para conectarse a datos cuando edite trabajos de ETL visuales en AWS Glue. Para ello, puede agregar nodos de origen que usen conectores para leer datos y nodos de destino para especificar la ubicación para escribir datos. 

**Topics**
+ [Modificar las propiedades de un nodo de origen de datos](edit-jobs-source.md)
+ [Uso de tablas del Catálogo de datos para el origen de datos](edit-jobs-source-catalog-tables.md)
+ [Uso de un conector para el origen de datos](edit-jobs-source-connectors.md)
+ [Uso de archivos en Amazon S3 para el origen de datos](edit-jobs-source-s3-files.md)
+ [Uso de un origen de datos de streaming](edit-jobs-source-streaming.md)
+ [Referencias](edit-jobs-source-references.md)

# Modificar las propiedades de un nodo de origen de datos
<a name="edit-jobs-source"></a>

Para especificar las propiedades del origen de datos, elija primero un nodo de origen de datos en el diagrama de trabajo. A continuación, en el lado derecho del panel de detalles del nodo, configure las propiedades del nodo.

**Para modificar las propiedades de un nodo de origen de datos**

1. Vaya al editor visual para acceder a un trabajo nuevo o guardado.

1. Elija un nodo de origen de datos en el diagrama de trabajo.

1. Elija la pestaña **Node properties (Propiedades del nodo)** en el panel de detalles del nodo y escriba la siguiente información:
   + **Name (Nombre)**: (opcional) ingrese un nombre para asociar al nodo en el diagrama de trabajo. Este nombre debe ser único entre todos los nodos de este trabajo.
   + **Node type (Tipo de nodo)**: el tipo de nodo determina la acción que realiza el nodo. En la lista de opciones para **Node type (Tipo de nodo)**, elija uno de los valores enumerados en el encabezado **Data source (Origen de datos)**.

1. Configuración de la información de **Data source properties (Propiedades de origen de datos)**. Para obtener más información, consulte las siguientes secciones:
   + [Uso de tablas del Catálogo de datos para el origen de datos](edit-jobs-source-catalog-tables.md)
   + [Uso de un conector para el origen de datos](edit-jobs-source-connectors.md)
   + [Uso de archivos en Amazon S3 para el origen de datos](edit-jobs-source-s3-files.md)
   + [Uso de un origen de datos de streaming](edit-jobs-source-streaming.md)

1. (Opcional) después de configurar las propiedades del nodo y del origen de datos, puede ver el esquema de datos para su origen de datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

1. (Opcional) después de configurar las propiedades del nodo y del origen de datos, puede ver la previsualización del conjunto de datos para su origen de datos al seleccionar la pestaña **Data preview (Previsualización de datos)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Hay un costo asociado con el uso de este recurso y la facturación comienza tan pronto como proporcione un rol de IAM.

# Uso de tablas del Catálogo de datos para el origen de datos
<a name="edit-jobs-source-catalog-tables"></a>

En todos los orígenes de datos, excepto Amazon S3 y los conectores, debe existir una tabla en el AWS Glue Data Catalog para el tipo de fuente que elija. AWS Glue no crea la tabla del Catálogo de datos.

**Para configurar un nodo de origen de datos en función de una tabla del Catálogo de datos**

1. Vaya al editor visual para acceder a un trabajo nuevo o guardado.

1. Elija un nodo de origen de datos en el diagrama de trabajo.

1. Elija la pestaña **Data source properties (Propiedades de origen de datos)** y, a continuación, escriba la información siguiente:
   + **S3 source type (Tipo de origen S3)**: (solo para orígenes de datos de Amazon S3) elija la opción **Select a Catalog table (Seleccionar una tabla del catálogo)** para utilizar una tabla del AWS Glue Data Catalog existente.
   + **Database (Base de datos)**: elija la base de datos del Catálogo de datos que contiene la tabla de origen que desea utilizar para este trabajo. Puede utilizar el campo de búsqueda para buscar una base de datos por su nombre.
   + **Table (Tabla)**: elija la tabla asociada a los datos de origen de la lista. Esta tabla ya debe existir enAWS Glue Data Catalog. Puede utilizar el campo de búsqueda para buscar una tabla por su nombre.
   + **Partition predicate (Predicado de partición)**: (sólo para orígenes de datos de Amazon S3) ingrese una expresión booleana basada en Spark SQL que incluya sólo las columnas de partición. Por ejemplo: `"(year=='2020' and month=='04')"`
   + **Temporary directory (Directorio temporal)**: (sólo para orígenes de datos de Amazon Redshift) ingrese una ruta de acceso para la ubicación de un directorio de trabajo en Amazon S3 donde su trabajo de ETL puede escribir resultados intermedios temporales.
   + **Role associated with the cluster (Rol asociado al clúster)**: (sólo para orígenes de datos de Amazon Redshift) ingrese un rol para que utilice su trabajo de ETL que contenga permisos para clústeres de Amazon Redshift. Para obtener más información, consulte [Permisos de origen de datos y destino de datos](getting-started-min-privs-job.md#getting-started-min-privs-data).

# Uso de un conector para el origen de datos
<a name="edit-jobs-source-connectors"></a>

Si selecciona un conector para el **Node type (Tipo de nodo)**, siga las instrucciones en [Creación de trabajos con conectores personalizados](job-authoring-custom-connectors.md) para finalizar la configuración de las propiedades del origen de datos.

# Uso de archivos en Amazon S3 para el origen de datos
<a name="edit-jobs-source-s3-files"></a>

Si elige Amazon S3 como origen de datos, puede elegir entre lo siguiente:
+ Una base de datos y una tabla del Catálogo de datos.
+ Un bucket, carpeta o archivo en Amazon S3.

Si utiliza un bucket de Amazon S3 como origen de datos, AWS Glue detecta el esquema de los datos en la ubicación especificada desde uno de los archivos o al utilizar el archivo especificado como archivo de muestra. La detección de esquemas se produce cuando se utiliza el botón **Infer schema (Inferir esquema)**. Si cambia la ubicación de Amazon S3 o el archivo de ejemplo, debe elegir **Infer schema (Inferir esquema)** una vez más, para realizar la detección de esquemas utilizando la nueva información.

**Para configurar un nodo de origen de datos que lea directamente desde archivos en Amazon S3**

1. Vaya al editor visual para acceder a un trabajo nuevo o guardado.

1. Elija un nodo de origen de datos en el diagrama de trabajo para un origen de Amazon S3.

1. Elija la pestaña **Data source properties (Propiedades de origen de datos)** y, a continuación, escriba la información siguiente:
   + **S3 source type (Tipo de origen de S3)**: (solo para orígenes de datos de Amazon S3) elija la opción **S3 location (Ubicación de S3)**.
   + **S3 URL (URL de S3)**: ingrese la ruta de acceso al bucket, carpeta o archivo de Amazon S3 que contiene los datos de su trabajo. Puede elegir **Browse S3 (Examinar S3)** para seleccionar la ruta de acceso entre las ubicaciones disponibles para su cuenta. 
   + **Recursive** (Acción recursiva): elija esta opción si desea que AWS Glue lea datos de archivos en carpetas secundarias en la ubicación de S3. 

     Si las carpetas secundarias contienen datos particionados, AWS Glue no agrega ninguna información de partición especificada en los nombres de carpeta al Catálogo de datos. Por ejemplo, considere la siguientes carpetas en Amazon S3:

     ```
     S3://sales/year=2019/month=Jan/day=1
     S3://sales/year=2019/month=Jan/day=2
     ```

     Si elige **Recursive** (Acción recursiva) y selecciona la carpeta `sales` como la ubicación de S3, AWS Glue lee los datos en todas las carpetas secundarias, pero no crea particiones por año, mes o día.
   + **Data format (Formato de datos)**: elija el formato en el que se almacenan los datos. Puede elegir JSON, CSV o Parquet. El valor que seleccione indica al trabajo de AWS Glue cómo leer los datos del archivo de origen.
**nota**  
Si no selecciona el formato correcto para los datos, AWS Glue puede inferir bien el esquema, pero el trabajo no podrá analizar los datos del archivo de origen en forma correcta.

     Puede introducir opciones de configuración adicionales, en función del formato que elija. 
     + **JSON** (JavaScript Object Notation)
       + **JsonPath**: ingrese una ruta de JSON que apunte a un objeto que se usa para definir un esquema de tabla. Las expresiones de la ruta JSON siempre hacen referencia a una estructura JSON de la misma manera que la expresión XPath se utiliza en combinación con un documento XML. El “root member object (objeto miembro raíz)” en la ruta JSON siempre se conoce como `$`, incluso si es un objeto o matriz. La ruta de JSON se puede escribir en la notación de puntos o la notación de corchete.

         Para obtener más información acerca de las rutas JSON, consulte [JsonPath](https://github.com/json-path/JsonPath) en el sitio web GitHub.
       + **Records in source files can span multiple lines (Los registros en los archivos de origen pueden abarcar varias líneas)**: elija esta opción si un solo registro puede abarcar varias líneas en el archivo CSV.
     + **CSV** (valores separados por comas)
       + **Delimiter (Delimitador)**: escriba un carácter para indicar qué elemento va a separar cada entrada de columna en la fila, por ejemplo, `;` o `,`.
       + **Escape character (Carácter de escape)**: escriba un carácter que se utilice como carácter de escape. Este carácter indica que el carácter que sigue inmediatamente al carácter de escape debe tomarse en forma literal y no debe interpretarse como un delimitador.
       + **Quote characters (Caracteres de cita)**: ingrese el carácter que se utiliza para agrupar cadenas separadas en un solo valor. Por ejemplo, debería elegir **Double quote (") [Comilla doble (“)]** si tiene valores como `"This is a single value"` en su archivo CSV.
       + **Records in source files can span multiple lines (Los registros en los archivos de origen pueden abarcar varias líneas)**: elija esta opción si un solo registro puede abarcar varias líneas en el archivo CSV.
       + **First line of source file contains column headers (La primera línea del archivo de origen contiene encabezados de columna)**: elija esta opción si la primera fila del archivo CSV contiene encabezados de columna en lugar de datos.
     + **Parquet** (almacenamiento en columna de Apache Parquet)

       No hay ajustes adicionales que configurar para los datos almacenados en formato Parquet.
     + **Apache Hudi**

       No hay ajustes adicionales que configurar para los datos almacenados en formato Apache Hudi.
     + **Delta Lake**

       No hay ajustes adicionales que configurar para los datos almacenados en formato Delta Lake.
     + **Excel**

       No hay ajustes adicionales que configurar para los datos almacenados en formato Excel.
   + **Partition predicate (Predicado de partición)**: para particionar los datos que se leen desde el origen de datos, ingrese una expresión booleana basada en Spark SQL que incluya sólo las columnas de partición. Por ejemplo: `"(year=='2020' and month=='04')"`
   + **Advanced options (Opciones avanzadas)**: expanda esta sección si desea que AWS Glue detecte el esquema de los datos en función de un archivo específico. 
     + **Schema inference** (Inferencia de esquema): elija la opción **Choose a sample file from S3** (Elegir un archivo de ejemplo desde S3) si desea utilizar un archivo específico en lugar de permitir que AWS Glue elija un archivo. La inferencia de esquemas no está disponible para el origen de Excel.
     + **Auto-sampled file (Archivo de ejemplo automático)**: ingrese la ruta de acceso al archivo en Amazon S3 que se utilizará para inferir el esquema.

     Si está editando un nodo de origen de datos y cambia el archivo de ejemplo seleccionado, elija **Reload schema (Volver a cargar esquema)** para detectar el esquema mediante el nuevo archivo de ejemplo.

1. Elija el botón **Infer schema (Inferir esquema)** para detectar el esquema a partir de los archivos de origen en Amazon S3. Si cambia la ubicación de Amazon S3 o el archivo de ejemplo, debe elegir **Infer schema (Inferir esquema)** una vez más, para inferir el esquema con la nueva información.

# Uso de un origen de datos de streaming
<a name="edit-jobs-source-streaming"></a>

Puede crear trabajos de extracción, transformación y carga (ETL) de streaming que se ejecuten en forma continua y consuman datos de orígenes de streaming en Amazon Kinesis Data Streams, Apache Kafka y Amazon Managed Streaming for Apache Kafka (Amazon MSK).

**Para configurar las propiedades de un origen de datos de streaming**

1. Vaya al editor visual de gráficos para acceder a un trabajo nuevo o guardado.

1. Elija un nodo de origen de datos en el gráfico para Kafka o Kinesis Data Streams.

1. Elija la pestaña **Data source properties (Propiedades de origen de datos)** y, a continuación, escriba la información siguiente:

------
#### [ Kinesis ]
   + **Kinesis source type** (Tipo de origen de Kinesis): elija la opción **Stream details** (Detalles de la transmisión) para utilizar el acceso directo a la fuente de streaming o elegir **Data Catalog table** (Tabla del Catálogo de datos) a fin de utilizar la información almacenada allí en su lugar.

     Si elige **Stream details** (Detalles de la transmisión), especifique la siguiente información adicional.
     + **Ubicación del flujo de datos**: elija si el flujo se encuentra asociado al usuario actual o si se encuentra asociado a otro usuario.
     + **Region** (Región): elija la Región de AWS donde existe la transmisión. Esta información se utiliza con la finalidad de crear el ARN para acceder a la secuencia de datos.
     + **Stream ARN** (Transmisión de ARN): ingrese el nombre de recurso de Amazon (ARN) para Kinesis Data Stream. Si la transmisión se encuentra en la cuenta corriente, puede elegir el nombre de la secuencia en la lista desplegable. Puede utilizar el campo de búsqueda para buscar una secuencia de datos de datos por su nombre o ARN.
     + **Data format** (Formato de los datos): elija el formato utilizado por la secuencia de datos de la lista. 

       AWS Glue detecta de forma automática el esquema de los datos de streaming.

     Si elige **Data Catalog table** (Tabla del Catálogo de datos), especifique la siguiente información adicional.
     + **Database** (Base de datos): (opcional) elija la base de datos en el Catálogo de datos de AWS Glue que contenga la tabla asociada al origen de datos de streaming. Puede utilizar el campo de búsqueda para buscar una base de datos por su nombre. 
     + **Table (Tabla)**: (opcional) elija la tabla asociada a los datos de origen de la lista. Esta tabla ya debe existir en el Catálogo de datos de AWS Glue. Puede utilizar el campo de búsqueda para buscar una tabla por su nombre. 
     + **Detect schema** (Detectar esquemas): elija esta opción para que AWS Glue detecte el esquema a partir de los datos de streaming, en lugar de almacenar la información del esquema en una tabla del Catálogo de datos. Esta opción se habilita automáticamente si elige la opción **Stream details** (Detalles de la transmisión).
   + **Starting position** (Posición inicial): de forma predeterminada, el trabajo de ETL utiliza la opción **Earliest** (La primera), lo que significa que lee los datos desde el registro más antiguo disponible en la transmisión. En su lugar, puede elegir **Latest** (El último), lo que indica que el trabajo de ETL debería empezar a leer justo después del registro más reciente en la transmisión.
   + **Window size (Tamaño de ventana)**: de forma predeterminada, su trabajo de ETL procesa y escribe datos en ventanas de 100 segundos. Esto permite que los datos se procesen de forma eficiente y permite que las agregaciones se realicen en los datos que llegan más tarde de lo previsto. Puede modificar este tamaño de ventana para aumentar la puntualidad o la precisión de agregación. 

     AWS GlueLos trabajos de streaming de utilizan puntos de control en lugar de marcadores de trabajo para realizar un seguimiento de los datos leídos. 
   + **Advanced connection options** (Opciones avanzadas de conexión): expanda esta sección para agregar pares de valor de clave a fin de especificar opciones de conexión adicionales. Para obtener más información acerca de las opciones que puede especificar aquí, consulte [“connectionType”: “kinesis”](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-kinesis) en la *Guía para desarrolladores de AWS Glue*.

------
#### [ Kafka ]
   + **Apache Kafka source** (Fuente de Apache Kafka): elija la opción **Stream details** (Detalles de la transmisión) para utilizar el acceso directo a la fuente de streaming o elegir **Data Catalog table** (Tabla del Catálogo de datos) a fin de utilizar la información almacenada allí en su lugar.

     Si elige **Data Catalog table** (Tabla del Catálogo de datos), especifique la siguiente información adicional.
     + **Database** (Base de datos): (opcional) elija la base de datos en el Catálogo de datos de AWS Glue que contenga la tabla asociada al origen de datos de streaming. Puede utilizar el campo de búsqueda para buscar una base de datos por su nombre. 
     + **Table (Tabla)**: (opcional) elija la tabla asociada a los datos de origen de la lista. Esta tabla ya debe existir en el Catálogo de datos de AWS Glue. Puede utilizar el campo de búsqueda para buscar una tabla por su nombre. 
     + **Detect schema** (Detectar esquemas): elija esta opción para que AWS Glue detecte el esquema a partir de los datos de streaming, en lugar de almacenar la información del esquema en una tabla del Catálogo de datos. Esta opción se habilita automáticamente si elige la opción **Stream details** (Detalles de la transmisión).

     Si elige **Stream details** (Detalles de la transmisión), especifique la siguiente información adicional.
     + **Connection name** (Nombre de la conexión): elija la conexión de AWS Glue que contiene la información de acceso y autenticación para la secuencia de datos de Kafka. Debe utilizar una conexión con los orígenes de datos de streaming de Kafka. Si no existe una conexión, puede utilizar la consola de AWS Glue a fin de crear una conexión para la secuencia de datos de Kafka.
     + **Topic name** (Nombre del tema): ingrese el nombre del tema en el que se va a leer.
     + **Data format** (Formato de los datos): elija el formato que desea utilizar al leer datos de la secuencia de eventos de Kafka. 
   + **Starting position** (Posición inicial): de forma predeterminada, el trabajo de ETL utiliza la opción **Earliest** (La primera), lo que significa que lee los datos desde el registro más antiguo disponible en la transmisión. En su lugar, puede elegir **Latest** (El último), lo que indica que el trabajo de ETL debería empezar a leer justo después del registro más reciente en la transmisión.
   + **Window size (Tamaño de ventana)**: de forma predeterminada, su trabajo de ETL procesa y escribe datos en ventanas de 100 segundos. Esto permite que los datos se procesen de forma eficiente y permite que las agregaciones se realicen en los datos que llegan más tarde de lo previsto. Puede modificar este tamaño de ventana para aumentar la puntualidad o la precisión de agregación. 

     AWS GlueLos trabajos de streaming de utilizan puntos de control en lugar de marcadores de trabajo para realizar un seguimiento de los datos leídos. 
   + **Advanced connection options** (Opciones avanzadas de conexión): expanda esta sección para agregar pares de valor de clave a fin de especificar opciones de conexión adicionales. Para obtener más información acerca de las opciones que puede especificar aquí, consulte [“connectionType”: “kafka”](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-kafka) en la *Guía para desarrolladores de AWS Glue*.

------

**nota**  
Las previsualizaciones de datos no se soportan actualmente para los orígenes de datos de streaming.

# Referencias
<a name="edit-jobs-source-references"></a>

 **prácticas recomendadas** 
+  [Cree una canalización de servicios de ETL para cargar datos de forma incremental desde Amazon S3 hasta utilizar Amazon Redshift en AWS Glue](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-an-etl-service-pipeline-to-load-data-incrementally-from-amazon-s3-to-amazon-redshift-using-aws-glue.html) 

 **Programación de ETL** 
+  [Tipos de conexión y opciones para ETL en AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-connections.html) 
+  [Valores connectionType de JDBC](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html#aws-glue-programming-etl-connect-jdbc) 
+  [Opciones avanzadas para mover datos hacia y desde Amazon Redshift](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html) 

# Configuración de nodos de destino de datos
<a name="data-target-nodes"></a>

El destino de datos es donde el trabajo escribe los datos transformados. 

## Información general de las opciones de destino de datos
<a name="edit-jobs-target-overview"></a>

Su destino de datos (también denominado *receptor de datos*) puede ser uno de los siguientes:
+ **S3**: el trabajo escribe los datos en un archivo en la ubicación de Amazon S3 que elija y en el formato que especifique.

  Si configura columnas de partición para el destino de datos, el trabajo escribe el conjunto de datos en Amazon S3 en directorios en función de la clave de partición.
+ **AWS Glue Data Catalog**: el trabajo utiliza la información asociada a la tabla del Catálogo de datos para escribir los datos de salida en una ubicación de destino. 

  Puede crear la tabla en forma manual o con el rastreador. También puede utilizar plantillas de AWS CloudFormation para crear tablas en el Catálogo de datos. 
+ Conector: un conector es un fragmento de código que facilita la comunicación entre el almacén de datos y AWS Glue. El trabajo utiliza el conector y la conexión asociada para escribir los datos de salida en una ubicación de destino. Puede suscribirse a un conector ofrecido en AWS Marketplace o puede crear su propio conector personalizado. Para obtener más información, consulte [Agregar conectores a AWS Glue Studio](creating-custom-connectors.md#creating-connectors).

Puede elegir actualizar el Catálogo de datos cuando su trabajo escriba en un destino de datos de Amazon S3. En lugar de requerir que un rastreador actualice el Catálogo de datos cuando cambian el esquema o las particiones, esta opción facilita la actualización de las tablas. Esta opción simplifica el proceso de hacer que los datos estén disponibles para análisis mediante el agregado opcional de nuevas tablas al Catálogo de datos, la actualización de particiones de tabla y del esquema de las tablas directamente desde el trabajo.

## Edición del nodo de destino de datos
<a name="edit-jobs-target"></a>

El destino de datos es donde el trabajo escribe los datos transformados. 

**Para agregar o configurar un nodo de destino de datos en el diagrama de trabajo**

1. (Opcional) si necesita agregar un nodo de destino, elija **Target (Destino)** en la barra de herramientas situada en la parte superior del editor visual y elija **S3** o **Glue Data Catalog** (Catálogo de datos de Glue). 
   + Si elige **S3** para el destino, el trabajo escribe el conjunto de datos en uno o más archivos en la ubicación de Amazon S3 que especifique.
   + Si elige **AWS Glue Data Catalog** para el destino, el trabajo escribe en una ubicación descrita por la tabla seleccionada en el Catálogo de datos.

1. Elija un nodo de destino de datos en el diagrama de trabajo. Al elegir un nodo, aparece el panel de detalles del nodo en el lado derecho de la página.

1. Elija la pestaña **Node properties (Propiedades del nodo)** y, a continuación, escriba la información siguiente:
   + **Name (Nombre)**: ingrese un nombre para asociar al nodo en el diagrama de trabajo.
   + **Node type (Tipo de nodo)**: ya se debe haber seleccionado un valor, pero podrá modificarlo según sea necesario.
   + **Node parents (Nodo principales)**: el nodo principal es el nodo del diagrama de trabajo que proporciona los datos de salida que desea escribir en la ubicación de destino. Para un diagrama de trabajo previamente completado, el nodo de destino ya debe tener seleccionado el nodo principal. Si no se muestra ningún nodo principal, elija un nodo principal de la lista. 

     Un nodo de destino tiene un nodo principal único.

1. Configure la información de **Data source properties (Propiedades de origen de datos)**. Para obtener más información, consulte las siguientes secciones:
   + [Uso de Amazon S3 para el destino de datos](#edit-job-target-S3)
   + [Uso de tablas del Catálogo de datos para el destino de datos](#edit-job-target-catalog)
   + [Uso de un conector para el destino de datos](#edit-job-target-connector)

1. (Opcional) después de configurar las propiedades del nodo de destino de datos, puede ver el esquema de salida para sus datos al seleccionar la pestaña **Output schema (Esquema de salida)** en el panel de detalles del nodo. La primera vez que elija esta pestaña para cualquier nodo de trabajo, se le pedirá que proporcione un rol de IAM para acceder a los datos. Si no ha especificado un rol de IAM en **Job details (Detalles del trabajo)**, se le pedirá que ingrese un rol de IAM aquí.

### Uso de Amazon S3 para el destino de datos
<a name="edit-job-target-S3"></a>

En todos los orígenes de datos, excepto Amazon S3 y los conectores, debe existir una tabla en el AWS Glue Data Catalog para el tipo de fuente que elija. AWS Glue Studio no crea la tabla del Catálogo de datos.

**Para configurar un nodo de destino de datos que escriba en Amazon S3**

1. Vaya al editor visual para acceder a un trabajo nuevo o guardado.

1. Elija un nodo de origen de datos en el diagrama de trabajo.

1. Elija la pestaña **Data source properties (Propiedades de origen de datos)** y, a continuación, escriba la información siguiente:
   + **Format (Formato)**: elija un formato de la lista. Los tipos de formato disponibles para los resultados de datos son:
     + **JSON**: notación de objetos JavaScript. 
     + **CSV**: valores separados por comas. 
     + **Avro**: Apache Avro JSON binario. 
     + **Parquet**: un tipo personalizado de escritor de Parquet, optimizado para `DynamicFrames` como el formato de datos. En lugar de requerir un esquema precalculado para los datos, calcula y modifica el esquema dinámicamente.
     + **ORC**: formato Apache Optimized Row Columnar (ORC). 
     + **Apache Hudi**: un marco de almacenamiento de lago de datos de código abierto que simplifica el procesamiento progresivo de datos y el desarrollo de canalizaciones de datos. 
     + **Apache Iceberg**: proporciona un formato de tabla de alto rendimiento que funciona igual que una tabla SQL. 
     + **Delta Lake**: es un marco de almacenamiento de lago de datos de código abierto para hacer transacciones de ACID, escalar el manejo de metadatos y unificar la transmisión y el procesamiento de datos por lotes. 
     + **XML**: lenguaje de marcado extensible (XML). 
     + **Tableau Hyper**: tecnología de motor de datos en memoria de Tableau.

     Para obtener más información sobre estas opciones de formato, consulte [Opciones de formato para las entradas y salidas de ETL en AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html) en la *Guía para desarrolladores de AWS Glue*.
   + **Tipo de compresión**: puede optar por comprimir los datos de manera opcional mediante el tipo de archivos `CSV`, `JSON` o `Parquet`. El valor predeterminado es no compresión, o **None (Ninguno)**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/data-target-nodes.html)
   + **S3 Target Location (Ubicación de destino de S3)**: el bucket y la ubicación de Amazon S3 para la salida de datos. Puede elegir la opción **Browse S3 (Examinar S3)** para ver los depósitos de Amazon S3 a los que tiene acceso y elegir uno como destino. 
   + **Opciones de actualización del Catálogo de datos**
     + **Do not update the Data Catalog (No actualizar el Catálogo de datos)**: (predeterminado) seleccione esta opción si no desea que el trabajo actualice el Catálogo de datos, incluso si el esquema cambia o se agregan nuevas particiones.
     + **Create a table in the Data Catalog and on subsequent runs, update the schema and add new partitions (Crear una tabla en el Catálogo de datos y en ejecuciones posteriores, actualizar el esquema y agregar nuevas particiones)**: si elige esta opción, el trabajo crea la tabla en el Catálogo de datos durante la primera ejecución del trabajo. En las ejecuciones de trabajos posteriores, el trabajo actualiza la tabla del Catálogo de datos si cambia el esquema o se agregan nuevas particiones.

       También debe seleccionar una base de datos en el Catálogo de datos e introducir un nombre de tabla.
     + **Create a table in the Data Catalog and on subsequent runs, keep existing schema and add new partitions (Crear una tabla en el Catálogo de datos y en ejecuciones posteriores, mantener el esquema existente y agregar nuevas particiones)**: si elige esta opción, el trabajo crea la tabla en el Catálogo de datos durante la primera ejecución del trabajo. En las ejecuciones de trabajos posteriores, el trabajo actualiza la tabla del Catálogo de datos solo para agregar nuevas particiones.

       También debe seleccionar una base de datos en el Catálogo de datos e introducir un nombre de tabla.
   + **Particionamiento de archivos**: elija el tipo de particionamiento en el que desea guardar la salida.
     + **Generación automática de archivos (recomendado)**: este es el valor predeterminado para el número de archivos generados.
     + **Salida de varios archivos**: especifique el número de archivos de salida que desea. Para un rendimiento óptimo, utilice el valor predeterminado de número de archivos generados automáticamente.
   + **Partition keys (Claves de partición)**: elija qué columnas utilizar como claves de partición en la salida. Para agregar más claves de partición, elija **Add a partition key (Agregar una clave de partición)**.

   El particionamiento de archivos no es compatible con Tableau Hyper como formato de destino.

### Uso de tablas del Catálogo de datos para el destino de datos
<a name="edit-job-target-catalog"></a>

En todos los orígenes de datos, excepto Amazon S3 y los conectores, debe existir una tabla en el AWS Glue Data Catalog para el tipo de destino que elija. AWS Glue Studio no crea la tabla del Catálogo de datos.

**Para configurar las propiedades de datos de un destino que utiliza una tabla del Catálogo de datos**

1. Vaya al editor visual para acceder a un trabajo nuevo o guardado.

1. Elija un nodo de destino de datos en el diagrama de trabajo.

1. Elija la pestaña **Data target properties (Propiedades de destino de datos)** y, a continuación, escriba la información siguiente:
   + **Database (Base de datos)**: elija la base de datos que contiene la tabla que desea utilizar como destino a partir de la lista. Esta base de datos ya debe existir en el Catálogo de datos.
   + **Table (Tabla)**: elija la tabla que define el esquema de los datos de salida a partir de la lista. Esta tabla ya debe existir en el Catálogo de datos.

     Una tabla del Catálogo de datos está formada por los nombres de las columnas, las definiciones de tipos de datos, la información de partición y otros metadatos acerca de un conjunto de datos de destino. Su trabajo escribe a una ubicación descrita en esta tabla en el Catálogo de datos.

     Para obtener más información acerca de cómo crear tablas en el Catálogo de datos, consulte [Definición de tablas en el Catálogo de datos](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) en la *Guía para desarrolladores de AWS Glue*.
   + **Opciones de actualización del Catálogo de datos**
     + **Do not change table definition (No cambiar la definición de la tabla)**: (predeterminado) seleccione esta opción si no desea que el trabajo actualice el Catálogo de datos, incluso si el esquema cambia o se agregan nuevas particiones.
     + **Update schema and add new partitions (Actualizar esquema y agregar nuevas particiones)**: si elige esta opción, el trabajo actualiza la tabla del Catálogo de datos si cambia el esquema o se agregan nuevas particiones.
     + **Keep existing schema and add new partitions (Mantener el esquema existente y agregar nuevas particiones)**: si elige esta opción, el trabajo actualiza la tabla del Catálogo de datos solo para agregar nuevas particiones.
     + **Partition keys (Claves de partición)**: elija qué columnas utilizar como claves de partición en la salida. Para agregar más claves de partición, elija **Add a partition key (Agregar una clave de partición)**.

### Uso de un conector para el destino de datos
<a name="edit-job-target-connector"></a>

Si selecciona un conector para el **Node type (Tipo de nodo)**, siga las instrucciones en [Creación de trabajos con conectores personalizados](job-authoring-custom-connectors.md) para finalizar la configuración de las propiedades del destino de datos.

# 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)**

# Cambio de los nodos principales de un nodo en el diagrama de trabajo
<a name="edit-job-change-parents"></a>

Puede cambiar los elementos principales de un nodo para mover nodos dentro del diagrama de trabajo o para cambiar un origen de datos para un nodo.

**Para cambiar el nodo principal**

1. Elija el nodo del diagrama de trabajo que desee modificar.

1. En el panel de detalles del nodo, en la pestaña **Node properties (Propiedades del nodo)**, en el encabezado **Node parents (Nodos principales)** elimine el nodo principal actual.

1. Elija un nuevo nodo principal de la lista.

1. Modifique las demás propiedades del nodo según sea necesario para que coincida con el nodo principal recién seleccionado.

Si modificó un nodo por error, puede utilizar el botón **Undo (Deshacer)** de la barra de herramientas para revertir la acción.

# Eliminación de nodos del diagrama de trabajo
<a name="edit-job-delete-node"></a>

 Al realizar trabajos con Visual ETL, puede quitar los nodos del lienzo sin la necesidad de volver a agregar o de reestructurar ningún nodo que esté conectado al nodo quitado. 

 En el siguiente ejemplo, puede ir a **Trabajos de ETL > Visual ETL** y, luego, en **Ejemplos de trabajos**, seleccionar **Trabajo de Visual ETL para unir varios orígenes**. Seleccione **Crear ejemplo de trabajo** para crear un trabajo y siga los pasos que se detallan a continuación. 

![\[En la captura de pantalla, se muestra el panel de Ejemplos de trabajo con la selección del trabajo de Visual ETL para unir varios orígenes.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/visual-etl-example-jobs-create.png)


**Eliminación de un nodo del lienzo**

1.  Desde la consola de AWS Glue, seleccione **Visual ETL** en el menú de navegación y seleccione el trabajo existente. El lienzo de trabajo mostrará el trabajo de ejemplo como se muestra a continuación.   
![\[En la captura de pantalla, se muestra un diagrama de trabajo generado a partir del ejemplo de trabajo.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/visual-job-example-job-nodes.png)

1.  Seleccione el nodo que desee quitar. El lienzo hará un acercamiento al nodo. En la barra de herramientas del lado derecho del lienzo, seleccione el ícono **Papelera**. Así se quitará el nodo y cualquier nodo conectado a ese nodo ocupará su lugar en el flujo de trabajo. En este ejemplo, se eliminó el primer nodo **Unión** del lienzo. 

    Si se elimina un nodo del flujo de trabajo, AWS Glue reorganizará los nodos para que su organización no resulte en un flujo de trabajo no válido. Es posible que necesite corregir la configuración del nodo. 

    En el ejemplo, se quitó el nodo **Unión** que se encontraba debajo del nodo **Suscriptores**. Como resultado, el nodo de origen **Planes** se movió al nivel superior y sigue conectado al nodo secundario **Unión**. El nodo **Unión** ahora necesita configuración adicional, ya que **Unión** requiere dos nodos de origen principales con las tablas seleccionadas. En la pestaña **Transformar**, que se encuentra en el lado derecho del lienzo, se muestran los requisitos que faltan en **Condiciones de unión**.   
![\[En la captura de pantalla, se muestra un diagrama en el que los nodos principales son dos nodos de origen: Asignación de planes y Suscriptores. Están conectados al nodo Unión. El nodo de origen Planes y el nodo Unión están conectados al nodo Cambiar esquema. El nodo Catálogo está conectado al nodo Cambiar esquema.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/visual-job-delete-node-join-plans.png)

1.  Elimine el segundo nodo **Unión** y el nodo **Seleccionar campos**. Al eliminar estos nodos, el flujo de trabajo se verá como se muestra a continuación.   
![\[En la captura de pantalla, se muestra un diagrama de trabajo en el que se quitaron los nodos Unión y Seleccionar campos y el nodo conectado Cambiar esquema tomó su lugar en el flujo de trabajo.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/visual-job-three-data-sources-rearranged.png)

1.  Para modificar las conexiones de los nodos, haga clic en el controlador del nodo y arrastre la conexión a un nodo nuevo. Esto le permitirá eliminar los nodos y reorganizar los nodos en un flujo lógico. En el ejemplo, la flecha roja indica cómo crear una nueva conexión al hacer clic en el controlador del nodo Planes y arrastrar la conexión al nodo Unión.   
![\[En la captura de pantalla, se muestra un diagrama de trabajo en el que el controlador está señalado con un círculo rojo y una flecha roja une los nodos Planes y Unión para representar la unión de los nodos al hacer clic y arrastrar.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/visual-job-plans-node-handle-selected.png)

1.  Si necesita deshacer alguna acción, seleccione el ícono **Deshacer** justo por debajo del ícono **Papelera** en la barra de herramientas que se encuentra en el costado derecho del lienzo. 

# Añadir parámetros de origen y destino al nodo AWS Glue del Catálogo de datos
<a name="edit-job-add-job-parameters"></a>

 AWS Glue Studio permite parametrizar trabajos visuales. Dado que los nombres de las tablas de catálogo en el entorno de producción y desarrollo pueden ser diferentes, puede definir y seleccionar los parámetros de tiempo de ejecución para las bases de datos y tablas que se ejecutarán cuando se ejecute el trabajo. 

 La parametrización del trabajo permite parametrizar los orígenes y destinos, y guardar esos parámetros en el trabajo cuando se utiliza el nodo AWS Glue del Catálogo de datos. Al especificar los orígenes y destinos como parámetros, se habilita la reutilización de los trabajos, especialmente cuando se utiliza el mismo trabajo en varios entornos. Esto es útil para promover el código en los entornos de implementación, ya que le ahorra tiempo y esfuerzo en la administración de los orígenes y destinos. Además, los parámetros personalizados que especifique anularán cualquier argumento predeterminado para ejecuciones específicas de trabajos de AWS Glue. 

 ** Para añadir parámetros de origen y destino ** 

 Aunque use el nodo AWS Glue del Catálogo de datos como origen o destino, igualmente puede definir los parámetros de tiempo de ejecución en la sección **Propiedades avanzadas** en la pestaña **Detalles del trabajo**. 

1.  Elija el nodo AWS Glue del Catálogo de datos como nodo de origen o nodo de destino. 

1.  Elija la pestaña **Detalles del trabajo**. 

1.  Elija **Propiedades avanzadas**. 

1.  En la sección Parámetros del trabajo, introduzca un valor clave. Por ejemplo, `--db.source` sería el parámetro de un origen de base de datos. Puede introducir cualquier nombre para la clave, siempre y cuando el nombre de esta vaya seguido de un "guión".   
![\[La captura de pantalla muestra la sección de parámetros del trabajo en la pestaña "Detalles del trabajo". Puede definir los parámetros que se utilizarán durante el tiempo de ejecución para la base de datos y la tabla.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/Data_Catalog_node_job_details_job_parameters.png)

1.  Especifique el valor. Por ejemplo, `databasename` sería el valor de la base de datos que se parametriza. 

1.  Elija **Agregar parámetro** si quiere agregar más parámetros. Se permite un máximo de 50 parámetros. Una vez definido el par de valor clave, puede utilizar el parámetro en el nodo del Catálogo de datos de AWS Glue. 

 ** Para seleccionar un parámetro de tiempo de ejecución ** 

**nota**  
 El proceso de selección de los parámetros de ejecución para las bases de datos y tablas es el mismo tanto si el nodo AWS Glue del Catálogo de datos es el origen como el destino. 

1.  Elija el nodo AWS Glue del Catálogo de datos como nodo de origen o nodo de destino. 

1.  En la pestaña **Propiedades del origen de datos - Catálogo de datos**, en **Base de datos**, seleccione **Utilizar parámetros en tiempo de ejecución**.   
![\[La captura de pantalla muestra el menú desplegable de los parámetros de ejecución. Puede seleccionar cualquier parámetro definido para utilizar durante el tiempo de ejecución para la base de datos y la tabla.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/Data_Catalog_node_select_runtime_parameters.png)

1.  Elija un parámetro en el menú desplegable. Por ejemplo, cuando seleccione un parámetro definido para una base de datos de origen, la base de datos aparecerá automáticamente en el menú desplegable de la base de datos cuando seleccione **Aplicar**. 

1.  En la sección Tabla, elija un parámetro que ya haya definido como tabla de origen. Cuando elige **Aplicar**, la tabla se rellena automáticamente como la tabla que se va a utilizar. 

1.  Cuando guarde y ejecute el trabajo, AWS Glue Studio hará referencia a los parámetros seleccionados durante la ejecución del trabajo. 

# Uso de los sistemas de control de versiones de Git en AWS Glue
<a name="edit-job-add-source-control-integration"></a>

**nota**  
 Los cuadernos actualmente no son compatibles con el control de versiones en AWS Glue Studio. Sin embargo, el control de versiones es compatible con los scripts de trabajo y trabajos de ETL visuales en AWS Glue. 

 Si tiene repositorios remotos y quiere administrar los trabajos de AWS Glue mediante sus repositorios, puede usar AWS Glue Studio o AWS CLI para sincronizar los cambios en los repositorios y trabajos en AWS Glue. Cuando sincroniza los cambios de esta manera, llevará el trabajo desde AWS Glue Studio al repositorio o lo extraerá del repositorio a AWS Glue Studio. 

 Con la integración de Git en AWS Glue Studio, puede: 
+  Se integra con los sistemas de control de versiones de Git como AWS CodeCommit, GitHub, GitLab y Bitbucket 
+  Edite trabajos de AWS Glue en AWS Glue Studio si usa trabajos visuales o trabajos de script y los sincroniza con un repositorio 
+  Parametrice los orígenes y objetivos en los trabajos 
+  Extraiga trabajos de un repositorio y edítelos en AWS Glue Studio 
+  Pruebe los trabajos extrayéndolos de las sucursales o enviándolos a estas mediante los flujos de trabajo de varias sucursales en AWS Glue Studio 
+  Descargue archivos de un repositorio y suba trabajos a AWS Glue Studio para la creación de trabajo entre cuentas 
+  Utilice la herramienta de automatización de su elección (por ejemplo, Jenkins, AWS CodeDeploy, etc.) 

En este video, se muestra cómo puede integrar AWS Glue con Git y crear una canalización de código continua y colaborativa.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/XRlZq2kvE4U/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/XRlZq2kvE4U)


## Permisos de IAM
<a name="git-integration-permissions"></a>

 Asegúrese de que el trabajo tenga uno de los siguientes permisos de IAM. Para más información sobre cómo configurar los permisos de IAM, consulte [Configurar permisos de IAM para AWS Glue Studio](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html?icmpid=docs_glue_studio_helppanel#getting-started-iam-permissions). 
+ `AWSGlueServiceRole`
+ `AWSGlueConsoleFullAccess`

 Como mínimo, se necesitan las siguientes acciones para la integración de Git: 
+  `glue:UpdateJobFromSourceControl`: para poder actualizar AWS Glue con un trabajo presente en un sistema de control de versiones 
+  `glue:UpdateSourceControlFromJob` — para poder actualizar el sistema de control de versiones con un trabajo almacenado en AWS Glue 
+  `s3:GetObject`: para poder recuperar el script del trabajo mientras se pasa al sistema de control de versiones 
+  `s3:PutObject`: para poder actualizar el script al extraer un trabajo desde un sistema de control de código de origen 

## Requisitos previos
<a name="edit-job-push-source-repository-prerequisites"></a>

 Para enviar los trabajos a un repositorio de control de código fuente, necesitará: 
+  un repositorio que ya haya sido creado por su administrador 
+  una rama del repositorio 
+  un token de acceso personal (en el caso de Bitbucket, se trata del token de acceso al repositorio) 
+  nombre de usuario del propietario del repositorio 
+  establecer permisos en el repositorio para que AWS Glue Studio pueda leer y escribir en el repositorio 
  +  **GitLab**: configure el alcance del token en api, read\$1repository y write\$1repository 
  +  **Bitbucket**: establezca los permisos para: 
    + **Pertenencia al espacio de trabajo**: leer y escribir
    + **Proyectos**: escribir, administrador, leer
    + **Repositorios**: leer, escribir, administrador, eliminar

**nota**  
 Cuando se utiliza AWS CodeCommit, no se necesita el token de acceso personal ni el propietario del repositorio. Consulte [Introducción a Git y AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started.html). 

 **Uso de trabajos del repositorio de control de código de origen en AWS Glue Studio** 

 Para extraer un trabajo del repositorio de control de código de origen que no se encuentra en AWS Glue Studio y que usa ese trabajo en AWS Glue Studio, los requisitos previos dependerán del tipo de trabajo. 

 **Para un trabajo visual:** 
+  necesita una carpeta y un archivo JSON de la definición del trabajo que coincida con el nombre del trabajo 

   Por ejemplo, consulte la definición de trabajo a continuación. La rama del repositorio debe contener una ruta `my-visual-job/my-visual-job.json` donde tanto la carpeta como el archivo JSON coincidan con el nombre del trabajo 

  ```
  {
    "name" : "my-visual-job",
    "description" : "",
    "role" : "arn:aws:iam::aws_account_id:role/Rolename",
    "command" : {
      "name" : "glueetl",
      "scriptLocation" : "s3://foldername/scripts/my-visual-job.py",
      "pythonVersion" : "3"
    },
    "codeGenConfigurationNodes" : "{\"node-nodeID\":{\"S3CsvSource\":{\"AdditionalOptions\":{\"EnableSamplePath\":false,\"SamplePath\":\"s3://notebook-test-input/netflix_titles.csv\"},\"Escaper\":\"\",\"Exclusions\":[],\"Name\":\"Amazon S3\",\"OptimizePerformance\":false,\"OutputSchemas\":[{\"Columns\":[{\"Name\":\"show_id\",\"Type\":\"string\"},{\"Name\":\"type\",\"Type\":\"string\"},{\"Name\":\"title\",\"Type\":\"choice\"},{\"Name\":\"director\",\"Type\":\"string\"},{\"Name\":\"cast\",\"Type\":\"string\"},{\"Name\":\"country\",\"Type\":\"string\"},{\"Name\":\"date_added\",\"Type\":\"string\"},{\"Name\":\"release_year\",\"Type\":\"bigint\"},{\"Name\":\"rating\",\"Type\":\"string\"},{\"Name\":\"duration\",\"Type\":\"string\"},{\"Name\":\"listed_in\",\"Type\":\"string\"},{\"Name\":\"description\",\"Type\":\"string\"}]}],\"Paths\":[\"s3://dalamgir-notebook-test-input/netflix_titles.csv\"],\"QuoteChar\":\"quote\",\"Recurse\":true,\"Separator\":\"comma\",\"WithHeader\":true}}}"
  }
  ```

 **Para un trabajo de script:** 
+  necesita una carpeta, un archivo JSON de la definición del trabajo y el script 
+  la carpeta y el archivo JSON deben coincidir con el nombre del trabajo. El nombre del script debe coincidir con el valor de `scriptLocation` en la definición del trabajo junto con la extensión del archivo 

   Por ejemplo, en la definición de trabajo que aparece a continuación, la rama del repositorio debe contener una ruta `my-script-job/my-script-job.json` y `my-script-job/my-script-job.py`. El nombre del script debe coincidir con el nombre que aparece en el valor `scriptLocation`, incluida la extensión del script 

  ```
  {
    "name" : "my-script-job",
    "description" : "",
    "role" : "arn:aws:iam::aws_account_id:role/Rolename",
    "command" : {
      "name" : "glueetl",
      "scriptLocation" : "s3://foldername/scripts/my-script-job.py",
      "pythonVersion" : "3"
    }
  }
  ```

## Limitaciones
<a name="edit-job-repository-limitations"></a>
+  En la actualidad, AWS Glue no es compatible con las extracciones ni los envíos a [GitLab-Groups](https://docs.gitlab.com/ee/user/group). 

## Conectar repositorios de control de versiones con AWS Glue
<a name="edit-job-connecting-repositories"></a>

 Puede introducir los detalles de su repositorio de control de versiones y administrarlos en la pestaña **Control de versiones** en el editor de trabajo de AWS Glue Studio. Para integrarlo con su repositorio de Git, debe conectarse al repositorio cada vez que inicie sesión en AWS Glue Studio. 

 Para conectar un sistema de control de versiones de Git: 

1.  En AWS Glue Studio, comience un nuevo trabajo y elija la pestaña **Control de versiones**.   
![\[La captura de pantalla muestra un trabajo con la pestaña Control de versiones seleccionada.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/editing-nodes-version-control-tab.png)

1.  En el **Sistema de control de versiones**, elija el servicio Git entre las opciones disponibles mediante un clic en el menú desplegable. 
   +  AWS CodeCommit 
   +  GitHub 
   + GitLab
   + Bitbucket

1.  En función del sistema de control de versiones Git que elija, tendrá que completar diferentes campos. 

   

    **En AWS CodeCommit**: 

    Complete la configuración del repositorio seleccionando el repositorio y la rama para su trabajo: 
   +  **Repositorio**: si ha configurado repositorios en AWS CodeCommit, seleccione el repositorio en el menú desplegable. Los repositorios se rellenarán automáticamente en la lista 
   +  **Rama**: seleccione la rama en el menú desplegable 
   +  **Carpeta**: *opcional*: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacía, se crea automáticamente una carpeta. El nombre de la carpeta es el nombre del trabajo de forma predeterminada. 

   

    **Para GitHub**: 

    Complete la configuración de GitHub con los campos: 
   +  **Token de acceso**: este es el token que proporciona el repositorio de GitHub. Para más información sobre los tokens de acceso personal, consulte [Documentos de GitHub](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) 
   +  **Propietario del repositorio**: es el propietario del repositorio de GitHub. 

    Complete la configuración del repositorio con la selección de este y la rama de GitHub. 
   +  **Repositorio**: si ha configurado repositorios en GitHub, seleccione el repositorio en el menú desplegable. Los repositorios se rellenarán automáticamente en la lista 
   +  **Rama**: seleccione la rama en el menú desplegable 
   +  **Carpeta**: *opcional*: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacía, se crea automáticamente una carpeta. El nombre de la carpeta es el nombre del trabajo de forma predeterminada. 

   

    **Para GitLab**: 
**nota**  
 En la actualidad, AWS Glue no es compatible con las extracciones ni los envíos a [GitLab-Groups](https://docs.gitlab.com/ee/user/group). 
   +  **Token de acceso**: este es el token que proporciona el repositorio de GitLab. Para más información sobre los tokens de acceso personal, consulte [Tokens de acceso personal de GitLab](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) 
   +  **Propietario del repositorio**: es el propietario del repositorio de GitLab. 

    Complete la configuración del repositorio con la selección de este y la rama de GitLab. 
   +  **Repositorio**: si ha configurado repositorios en GitLab, seleccione el repositorio en el menú desplegable. Los repositorios se rellenarán automáticamente en la lista 
   +  **Rama**: seleccione la rama en el menú desplegable 
   +  **Carpeta**: *opcional*: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacía, se crea automáticamente una carpeta. El nombre de la carpeta es el nombre del trabajo de forma predeterminada. 

    **Para Bitbucket**: 
   +  **Contraseña de la aplicación**: Bitbucket no utiliza tokens de acceso a repositorios, sino contraseñas de aplicaciones. Para obtener más información sobre las contraseñas de aplicaciones, consulte [Contraseñas de aplicaciones](https://support.atlassian.com/bitbucket-cloud/docs/app-passwords/). 
   +  **Propietario del repositorio**: es el propietario del repositorio de Bitbucket. En Bitbucket, el propietario es el creador del repositorio. 

    Seleccione el espacio de trabajo, el repositorio, la rama y la carpeta desde Bitbucket para completar la configuración del repositorio. 
   +  **Espacio de trabajo**: si tiene espacios de trabajo configurados en Bitbucket, seleccione el espacio de trabajo en el menú desplegable. Los espacios de trabajo se rellenan automáticamente 
   +  **Repositorio**: si ha configurado repositorios en Bitbucket, seleccione el repositorio en el menú desplegable. Los repositorios se rellenan automáticamente 
   +  **Rama**: seleccione la rama en el menú desplegable. Las ramas se rellenan automáticamente 
   +  **Carpeta**: *opcional*: escriba el nombre de la carpeta en la que quiere guardar el trabajo. Si se deja vacío, se creará automáticamente una carpeta con el nombre del trabajo. 

1.  Seleccione **Guardar** en la parte superior del trabajo de AWS Glue Studio 

## Envío de trabajos de AWS Glue al repositorio de origen
<a name="edit-job-push-source-repository"></a>

 Una vez que haya introducido los detalles de su sistema de control de versiones, puede editar los trabajos en AWS Glue Studio y empujar los trabajos a su repositorio de origen. Si no está familiarizado con los conceptos de Git, como empujar y tirar, consulta este tutorial sobre [Introducción a Git y AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started.html). 

 Para enviar su trabajo a un repositorio, debe introducir los detalles de su sistema de control de versiones y guardar el trabajo. 

1.  En el trabajo AWS Glue Studio, elija **Acciones**. Esto abrirá opciones de menú adicionales.   
![\[La captura de pantalla muestra un trabajo con el menú Acciones abierto. La opción Enviar al repositorio está visible.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/editing-nodes-actions-push-to-repository.png)

1.  Elija **Insertar en el repositorio**. 

    Esta acción guardará el trabajo. Cuando se pasa al repositorio, AWS Glue Studio empuja el último cambio guardado. Si el mismo usuario u otro usuario modificó el trabajo en el repositorio y no está sincronizado con el trabajo en AWS Glue Studio, el trabajo del repositorio se sobrescribe con el trabajo guardado en AWS Glue Studio cuando se empuja el trabajo desde AWS Glue Studio. 

1.  Elija **Confirmar** para completar la acción. Esto crea una nueva confirmación en el repositorio. Si está utilizando AWS CodeCommit, un mensaje de confirmación mostrará un enlace a la última confirmación en AWS CodeCommit. 

## Sacar trabajos de AWS Glue del repositorio de origen
<a name="edit-job-pull-source-repository"></a>

 Una vez que haya introducido los detalles de su repositorio de Git en la pestaña **Control de versiones**, también puede extraer trabajos de su repositorio y editarlos en AWS Glue Studio. 

1.  En el trabajo de AWS Glue Studio, elija **Acciones**. Esto abrirá opciones de menú adicionales.   
![\[La captura de pantalla muestra un trabajo con el menú Acciones abierto. La opción Enviar al repositorio está visible.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/editing-nodes-actions-push-to-repository.png)

1.  Elija **Extraer del repositorio**. 

1.  Elija **Confirmar**. Esto toma la confirmación más reciente del repositorio y actualiza el trabajo en AWS Glue Studio. 

1.  Edite su trabajo en AWS Glue Studio. Si realiza cambios, puede sincronizar su trabajo con el repositorio al elegir **Insertar en el repositorio** desde el menú desplegable **Acciones**. 

# Creación de código con cuadernos de AWS Glue Studio
<a name="notebooks-chapter"></a>

 Los ingenieros de datos pueden crear trabajos de AWS Glue de forma más rápida y sencilla que antes mediante el uso de la interfaz de cuaderno interactiva en AWS Glue Studio o sesiones interactivas en AWS Glue. 

## Limitaciones
<a name="notebooks-chapter-limitations"></a>
+  Los cuadernos de AWS Glue Studio no son compatibles con Scala. 

**Topics**
+ [Limitaciones](#notebooks-chapter-limitations)
+ [Información general sobre el uso de cuaderno](using-notebooks-overview.md)
+ [Creación de un trabajo de ETL mediante cuaderno en AWS Glue Studio](create-notebook-job.md)
+ [Componentes del editor de cuaderno](notebook-components.md)
+ [Cómo guardar el cuaderno y el script de trabajo](save-notebook.md)
+ [Administración de las sesiones de cuaderno](manage-notebook-sessions.md)
+ [Uso de Amazon Q Developer con libretas AWS Glue Studio](glue-studio-notebooks-amazon-q-developer.md)

# Información general sobre el uso de cuaderno
<a name="using-notebooks-overview"></a>

 AWS Glue Studio permite crear trabajos de forma interactiva en una interfaz de cuaderno basada en cuadernos de Jupyter. A través de los cuaderno en AWS Glue Studio, es posible editar scripts de trabajos y el código de integración de datos y ver el resultado sin que sea necesario ejecutar un trabajo completo. También es posible agregar un marcado y guardar cuaderno como archivos .ipynb y scripts de trabajo. Puede iniciar un cuaderno sin instalar software en forma local ni administrar servidores. Una vez que esté satisfecho con el código, AWS Glue Studio puede convertir el cuaderno en un trabajo de Glue con solo hacer clic en un botón. 

 Algunos de los beneficios de utilizar cuaderno son: 
+  No hay clúster que aprovisionar o administrar 
+  No hay que pagar por clústeres inactivos 
+  No se requiere una configuración inicial 
+  No se requiere instalación de cuadernos de Jupyter 
+  Mismo tiempo de ejecución y plataforma que ETL de AWS Glue 

 Al iniciar un cuaderno a través de AWS Glue Studio, todos los pasos de configuración ya han sido completados para que, apenas después de unos segundos, pueda explorar los datos y comenzar a desarrollar el script de trabajo. AWS Glue Studio configura un cuaderno de Jupyter con el kernel de Jupyter de AWS Glue. No es necesario configurar VPC, conexiones de red ni puntos de conexión de desarrollo para utilizar este cuaderno. 

 Para crear trabajos mediante la interfaz de cuaderno: 
+  Configure los permisos de IAM necesarios. 
+  Inicie una sesión de cuaderno para crear un trabajo. 
+  Escriba código en las celdas en el cuaderno. 
+  Ejecute y pruebe el código para ver el resultado. 
+  Guarde el trabajo. 

 Una vez guardado, el cuaderno es un trabajo completo de AWS Glue. Puede administrar todos los aspectos del trabajo, tales como la programación de ejecuciones de trabajos, la configuración de parámetros del trabajo y la visualización del historial de ejecuciones de trabajos justo al lado del cuaderno. 

# Creación de un trabajo de ETL mediante cuaderno en AWS Glue Studio
<a name="create-notebook-job"></a>

**Para empezar a utilizar los cuaderno en la consola de AWS Glue Studio**

1.  Adjunte políticas de AWS Identity and Access Management al usuario de AWS Glue Studio y cree un rol de IAM para el trabajo y cuaderno de ETL. 

1.  Configure una seguridad adicional de IAM para cuadernos, como se describe en [Concesión de permisos para el rol de IAM](notebook-getting-started.md#studio-notebook-permissions). 

1.  Abra la consola de AWS Glue Studio en [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/). 
**nota**  
Compruebe que el navegador no bloquea las cookies de terceros. Cualquier navegador que bloquee las cookies de terceros, ya sea de manera predeterminada o porque el usuario lo haya configurado así, impedirá que se inicien los cuadernos. Para obtener más información sobre cómo administrar las cookies, consulte:
   + [Chrome](https://support.alertlogic.com/hc/en-us/articles/360018127132-Turn-Off-Block-Third-Party-Cookies-in-Chrome-for-Windows)
   + [Firefox](https://support.mozilla.org/en-US/kb/third-party-cookies-firefox-tracking-protection)
   + [Safari](https://support.apple.com/guide/safari/manage-cookies-sfri11471/mac)

1. Elija el icono **Jobs** (Trabajos) en el menú de navegación de la izquierda. 

1.  Elija **Jupyter notebook** (Cuaderno de Jupyter) y, luego, elija **Create** (Crear) para iniciar una nueva sesión de cuaderno. 

1.  En la página **Create job in Jupyter notebook** (Crear trabajo en cuaderno de Jupyter), proporcione el nombre del trabajo y elija qué rol de IAM desea utilizar. Seleccione **Crear tarea**. 

    Tras un breve momento, aparece el editor de cuaderno. 

1.  Después de agregar el código, debe ejecutar la celda para iniciar una sesión. La celda se puede ejecutar de varias formas: 
   + Pulse el botón de reproducción.
   +  Use un método abreviado de teclado: 
     +  En MacOS, **Command** (Comando) \$1 **Enter** (Intro) para ejecutar la celda. 
     +  En Windows, **Shift** \$1 **Enter** (Intro) para ejecutar la celda. 

    Para obtener información sobre cómo escribir código mediante una interfaz de cuaderno de Jupyter, consulte * [The Jupyter Notebook User Documentation](https://jupyter-notebook.readthedocs.io/en/stable/notebook.html)* (Documentación del usuario de cuaderno de Jupyter). 

1.  Para probar el script, ejecute el script completo o celdas individuales. Cualquier salida de comando se mostrará en el área situada debajo de la celda. 

1.  Una vez que haya terminado de desarrollar el cuaderno, puede guardar el trabajo y luego ejecutarlo. Encontrará el script en la pestaña **Script**. Cualquier comando mágico que haya agregado al cuaderno se eliminará y no se guardará como parte del script del trabajo de AWS Glue generado. AWS Glue Studio agregará automáticamente un `job.commit()` al final del script generado desde el contenido del cuaderno.

   Para obtener más información sobre cómo ejecutar un trabajo, consulte [Iniciar una ejecución de trabajo](managing-jobs-chapter.md#start-jobs). 

   

# Componentes del editor de cuaderno
<a name="notebook-components"></a>

 La interfaz del editor de cuaderno tiene las siguientes secciones principales. 
+  Interfaz de cuaderno (panel principal) y barra de herramientas 
+  Pestañas de edición de trabajo 

## Editor de cuaderno
<a name="notebook-editor"></a>

 El editor de cuaderno de AWS Glue Studio se basa en la aplicación de cuaderno de Jupyter. La interfaz de cuaderno de AWS Glue Studio es similar a la provista por Bloc de notas de Jupyter, la cual se describe en la sección [Notebook user interface](https://jupyter-notebook.readthedocs.io/en/stable/notebook.html?highlight=toolbar#notebook-user-interface) (Interfaz de usuario de cuaderno). El cuaderno utilizado por las sesiones interactivas es un cuaderno de Jupyter. 

 Aunque el cuaderno de AWS Glue Studio es similar a cuaderno de Jupyter, difiere en algunos aspectos clave: 
+  en la actualidad, el cuaderno de AWS Glue Studio no puede instalar extensiones 
+  no se pueden utilizar varias pestañas; existe una relación 1:1 entre un trabajo y un cuaderno 
+  el cuaderno de AWS Glue Studio no tiene el mismo menú de archivos principales que existe en los cuadernos de Jupyter 
+  actualmente, el cuaderno de AWS Glue Studio solo se ejecuta con el kernel de AWS Glue. Tenga en cuenta que no puede actualizar el kernel por su cuenta. 

## pestañas de edición de trabajo de AWS Glue Studio
<a name="notebook-job-tabs"></a>

 Las pestañas que utiliza para interactuar con el trabajo de ETL se encuentran en la parte superior de la página del cuaderno. Son similares a las pestañas que aparecen en el editor visual de trabajos de AWS Glue Studio y realizan las mismas acciones. 
+  **Notebook** (Cuaderno): utilice esta pestaña para ver el script de trabajo mediante la interfaz del cuaderno. 
+  **Job details** (Detalles del trabajo): configure el entorno y las propiedades de las ejecuciones de trabajos. 
+  **Runs** (Ejecuciones): permite ver información sobre las ejecuciones anteriores de este trabajo. 
+  **Schedules** (Cronograma): configure un cronograma para ejecutar su trabajo en momentos específicos. 

# Cómo guardar el cuaderno y el script de trabajo
<a name="save-notebook"></a>

 Puede guardar el cuaderno y el script de trabajo que esté creando en cualquier momento. Simplemente elija el botón **Save** (Guardar) en la esquina superior derecha, igual que si estuviera en el editor visual o de script. 

 Cuando elige **Save** (Guardar), el archivo de cuaderno se guarda en las ubicaciones predeterminadas: 
+  De forma predeterminada, el script de trabajo se guarda en la ubicación de Amazon S3 indicada en la pestaña **Job Details** (Detalles del trabajo), en **Advanced properties** (Propiedades avanzadas), en la propiedad de detalles del trabajo **Script path** (Ruta de script). Los scripts de trabajo se guardan en una subcarpeta llamada `Scripts`. 
+  De forma predeterminada, el archivo de cuaderno (`.ipynb`) se guarda en la ubicación de Amazon S3 indicada en la pestaña **Job Details** (Detalles del trabajo), en **Advanced Properties** (Propiedades avanzadas), en **Script path** (Ruta de script) en los detalles del trabajo. Los archivos del cuaderno se guardan en una subcarpeta llamada`Notebooks`. 

**nota**  
 Al guardar el trabajo, el script de trabajo contiene solo las celdas de código del cuaderno. Las celdas y las magias de Markdown no se incluyen en el script de trabajo. Sin embargo, el archivo `.ipynb` contendrá cualquier markdown y magia. 

 Después de guardar el trabajo, puede ejecutarlo mediante el script que creó en el cuaderno. 

# Administración de las sesiones de cuaderno
<a name="manage-notebook-sessions"></a>

 Los cuaderno en AWS Glue Studio se basan en la característica de sesiones interactivas de AWS Glue. El uso de sesiones interactivas conlleva un costo. Para ayudar a administrar los costos, puede monitorear las sesiones creadas para su cuenta y ajustar la configuración predeterminada de todas las sesiones. 

## Cambio del tiempo de espera predeterminado de todas las sesiones de cuaderno
<a name="change-default-timeout"></a>

 De manera predeterminada, el cuaderno de AWS Glue Studio aprovisionado agota el tiempo de espera al cabo de 12 horas si se inicia y no se ejecuta ninguna celda. No lleva asociado ningún coste y el tiempo de espera no se puede configurar. 

 Una vez que se ejecuta una celda, se inicia una sesión interactiva. Esta sesión tiene un tiempo de espera predeterminado de 48 horas. Este tiempo de espera se puede configurar ejecutando un comando mágico `%idle_timeout` antes de ejecutar una celda. 

**Para modificar el tiempo de espera de sesión predeterminado para los cuaderno en AWS Glue Studio**

1.  En el cuaderno, ingrese el comando mágico `%idle_timeout` en una celda y especifique el valor de tiempo de espera en minutos. 

1.  Por ejemplo: `%idle_timeout 15` cambiará el tiempo de espera predeterminado a 15 minutos. Si la sesión no se utiliza en 15 minutos, se detiene automáticamente. 

## Instalación de módulos adicionales de Python
<a name="specify-default-modules"></a>

 Si desea instalar módulos adicionales a su sesión mediante pip, puede hacerlo con `%additional_python_modules` para agregarlos a la sesión: 

```
%additional_python_modules awswrangler, s3://amzn-s3-demo-bucket/mymodule.whl
```

 Todos los argumentos para additional\$1python\$1modules se pasan a . `pip3 install -m <>` 

 Para ver la lista de los módulos de Python disponibles, consulte [Uso de bibliotecas Python con AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-libraries.html). 

## Cambio de la configuración de AWS Glue
<a name="specify-default-modules"></a>

 Se pueden utilizar comandos mágicos para controlar los valores de configuración de los trabajos de AWS Glue. Si desea cambiar el valor de configuración de un trabajo, debe utilizar el comando mágico adecuado en el cuaderno. Consulte [Comandos mágicos compatibles con las sesiones interactivas de AWS Glue para Jupyter](https://docs.aws.amazon.com/glue/latest/dg/interactive-sessions-magics.html). 

**nota**  
 Ya no está disponible la función de anular las propiedades de una sesión en ejecución. Si desea cambiar las configuraciones de la sesión, debe detenerla, establecer las nuevas configuraciones y, a continuación, iniciar una nueva sesión. 

 AWS Glue admite varios tipos de empleados. Puede configurar el tipo de empleado con `%worker_type`. Por ejemplo: `%worker_type G.2X `. Los tipos de trabajadores disponibles son G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X y R.8X. El valor predeterminado es G.1X. 

 También puede especificar el número de empleados con `%number_of_workers`. Por ejemplo, para especificar 40 empleados: `%number_of_workers 40`. 

 Para obtener más información, consulte [Defining Job Properties](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) (Definición de las propiedades del trabajo). 

## Cómo detener una sesión de cuaderno
<a name="stop-notebook-session"></a>

 Para detener una sesión de cuaderno, utilice el comando mágico `%stop_session`. 

 Si se aleja del cuaderno en la consola de AWS, recibirá un mensaje de advertencia en el que podrá elegir detener la sesión. 

# Uso de Amazon Q Developer con libretas AWS Glue Studio
<a name="glue-studio-notebooks-amazon-q-developer"></a>

 AWS Glue Studio permite crear trabajos de forma interactiva en una interfaz de cuaderno basada en cuadernos de Jupyter. El uso de Amazon Q Developer mejora la experiencia de creación en los cuadernos de AWS Glue Studio. 

 La extensión Amazon Q Developer permite escribir código al generar recomendaciones de código y sugerir mejoras relacionadas con los problemas de código. Amazon Q Developer es compatible con Python y Scala, los dos lenguajes que se utilizan para codificar scripts de ETL para los trabajos de Spark en cuadernos de AWS Glue Studio. 

## ¿Qué es Amazon Q Developer?
<a name="w2aac33c15c36b9"></a>

 Amazon Q Developer es un servicio basado en machine learning que ayuda a mejorar la productividad de los desarrolladores. Amazon Q Developer logra esto mediante la generación de recomendaciones de código basadas en los comentarios de los desarrolladores en lenguaje natural y el código en el IDE. El servicio se integra con JupyterLab, Studio de Amazon SageMaker AI, instancias de cuadernos de Amazon SageMaker AI y otros entornos de desarrollo integrados (IDE). 

 Para obtener más información, consulte [Uso de Amazon Q Developer con AWS Glue Studio](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/glue-setup.html). 

# Estados de ejecución de tareas de AWS Glue en la consola
<a name="view-job-runs"></a>

Puede ver el estado de un trabajo de extracción, transformación y carga (ETL) de AWS Glue mientras se está ejecutando o después de su detención. Puede ver el estado mediante la consola de AWS Glue. 

## Acceso al panel de monitoreo de trabajos
<a name="monitoring-accessing-dashboard"></a>

Para acceder al panel de supervisión de trabajos, seleccione el enlace **Supervisión de ejecución de trabajos** en el panel de navegación de AWS Glue debajo de **Trabajos de ETL**.

## Información general del panel de monitoreo de trabajos
<a name="monitoring-dashboard-overview"></a>

El panel de monitoreo de trabajos proporciona un resumen general de las ejecuciones de trabajos, con totales para los trabajos con un estado de **En ejecución**, **Cancelado**, **Éxito** o **Error**. Los mosaicos adicionales proporcionan la tasa general de éxito de ejecución del trabajo, el uso estimado de DPU para los trabajos, un desglose de los recuentos de estado del trabajo por tipo de trabajo, tipo de empleado y día. 

Los gráficos de los mosaicos son interactivos. Puede elegir cualquier bloque de un gráfico para ejecutar un filtro que muestre sólo esos trabajos en la tabla **Ejecuciones de trabajo** de la parte inferior de la página.

Puede cambiar el intervalo de fechas de la información mostrada en esta página mediante el selector **Intervalo de fechas**. Al cambiar el intervalo de fechas, los mosaicos de información se ajustan para mostrar los valores según la cantidad especificada de días antes de la fecha actual. También puede utilizar un intervalo de fechas específico si elige **Personalizado** desde el selector de intervalo de fechas. 

## Vista de las ejecuciones de trabajo
<a name="monitoring-job-breakdown"></a>

**nota**  
 El historial de ejecución de trabajos está disponible durante 90 días para su flujo de trabajo y ejecución de trabajos. 

La lista de recursos **Ejecuciones de trabajo** muestra los trabajos para el intervalo de fechas especificado y los filtros.

Puede filtrar los trabajos según criterios adicionales, como el estado, el tipo de empleado, el tipo de trabajo y el nombre del trabajo. En el cuadro de filtro situado en la parte superior de la tabla, puede introducir el texto que desea utilizar como filtro. Los resultados de la tabla se actualizan con filas que contienen texto coincidente a medida que se escribe el texto.

Puede ver un subconjunto de los trabajos cuando selecciona elementos de los gráficos del panel de monitoreo de trabajos. Por ejemplo, si elige el número de trabajos en ejecución en el mosaico **Resumen de ejecuciones de trabajo**, la lista **Ejecuciones de trabajo** muestra sólo los trabajos que actualmente tienen un estado de `Running`. Si elige una de las barras del gráfico de barras **Desglose por tipo de empleado**, solo se muestran las ejecuciones de trabajos con el tipo y el estado de empleado coincidentes en la lista **Ejecuciones de trabajo**.

La lista de recursos **Ejecuciones de trabajo** muestra los detalles del trabajo. Puede ordenar las filas de la tabla si elige un encabezado de columna. Esta tabla contiene la siguiente información:


| Propiedad | Descripción | 
| --- | --- | 
| Nombre de trabajo | El nombre del trabajo. | 
| Tipo |  El tipo del entorno de trabajo: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/view-job-runs.html)  | 
| Hora de inicio |  La fecha y la hora en que se inició la ejecución de este flujo de trabajo.  | 
| Hora de finalización |  La fecha y la hora en que se completó la ejecución de este trabajo.  | 
| Estado de ejecución |  El estado actual de la ejecución de flujo de trabajo. Los valores pueden ser: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/view-job-runs.html)  | 
| Tiempo de ejecución | El periodo de tiempo que la ejecución de flujo de trabajo consumió recursos. | 
| Capacidad |  El número de unidades de procesamiento de datos (DPU) de AWS Glue asignadas a esta ejecución de trabajo. Para obtener más información acerca de la planificación de capacidad, consulte [Monitoreo para planificar la capacidad de DPU](https://docs.aws.amazon.com/glue/latest/dg/monitor-debug-capacity.html) en la *Guía para desarrolladores de AWS Glue*.  | 
| Tipo de empleado |  El tipo de empleado predefinido que se asigna cuando se ejecuta un trabajo. Los valores pueden ser `G.1X`, `G.2X`, `G.4X` o `G.8X`.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/view-job-runs.html)  | 
| Horas de DPU |  El número estimado de DPU utilizadas para la ejecución de trabajo. Una DPU es una medida relativa de la potencia de procesamiento. Las DPU se utilizan para determinar el costo de ejecutar su trabajo. Para obtener más información, consulte la [página de precios de AWS Glue](https://aws.amazon.com/glue/pricing/).  | 

Puede elegir cualquier ejecución de trabajo de la lista y ver información adicional. Elija una ejecución de trabajo y luego realice una de las operaciones siguientes:
+ Elija el menú **Acciones** y la opción **Ver trabajo** para ver el trabajo en el editor visual.
+ Elija el menú **Acciones** y la opción **Detener ejecución** para detener la ejecución actual del trabajo.
+ Elija el botón **Ver registros de CloudWatch** para ver los registros de ejecución de trabajo para ese trabajo. 
+ Elija **Ver detalles** para ver la página de detalles de ejecución de trabajo.

## Visualización de los registros de ejecución de trabajo
<a name="monitoring-job-run-logs"></a>

Puede ver los registros de trabajo de diversas formas:
+ En la página **Monitoreo**, en la tabla **Ejecuciones de trabajo**, elija una ejecución de trabajo y, a continuación, elija **Ver registros de CloudWatch**.
+ En el editor visual de trabajos, en la pestaña **Ejecuciones** para un trabajo, elija los hipervínculos para ver los registros:
  + **Registros**: enlaces a los registros de trabajo de Apache Spark escritos cuando se habilita el registro continuo para una ejecución de trabajo. Este enlace lo dirige a los registros de Amazon CloudWatch en el grupo de registros `/aws-glue/jobs/logs-v2`. De forma predeterminada, los registros excluyen los mensajes de registro de latido de Apache Hadoop YARN no útiles y de ejecutor o controlador de Apache Spark. Para obtener más información acerca del registro continuo, consulte [Registro continuo para trabajos de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuous-logging.html) en la *Guía para desarrolladores de AWS Glue*.
  + **Registros de errores**: enlaza con los registros escritos en `stderr` para esta ejecución de trabajo. Este enlace lo dirige a los registros de Amazon CloudWatch en el grupo de registros `/aws-glue/jobs/error`. Puede utilizar estos registros para ver detalles acerca de los errores que se encontraron durante la ejecución del trabajo.
  + **Registros de salida**: enlaza con los registros escritos en `stdout` para esta ejecución de trabajo. Este enlace lo dirige a los registros de Amazon CloudWatch en el grupo de registros `/aws-glue/jobs/output`. Puede utilizar esto registros para ver todos los detalles acerca de las tablas que se crearon en el AWS Glue Data Catalog y los errores que se encontraron.

## Visualización de los detalles de una ejecución de trabajo
<a name="monitoring-job-run-details"></a>

Puede elegir un trabajo de la lista **Ejecuciones de trabajo** en la página **Monitoreo** y, a continuación, elegir **Ver detalles de la ejecución** para ver información detallada sobre esa ejecución del trabajo. 

La información que se muestra en la página detalles de ejecución de trabajo incluye lo siguiente:


| Propiedad | Descripción | 
| --- | --- | 
| Nombre de trabajo | El nombre del trabajo. | 
| Estado de ejecución |  El estado actual de la ejecución de flujo de trabajo. Los valores pueden ser: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/view-job-runs.html)  | 
| Versión de Glue | La versión de AWS Glue utilizada por la ejecución del trabajo. | 
| Intento reciente | El número de intentos de reintento automático para esta ejecución de trabajo. | 
| Hora de inicio |  La fecha y la hora en que se inició la ejecución de este flujo de trabajo.  | 
| Hora de finalización |  La fecha y la hora en que se completó la ejecución de este trabajo.  | 
| Hora de inicio |  El tiempo empleado en la preparación para ejecutar el trabajo.  | 
| Hora de ejecución |  El tiempo empleado en la ejecución del script de trabajo.  | 
| Nombre del disparador |  El nombre del desencadenador asociado con el trabajo.  | 
| Hora de la última modificación |  La fecha en la que se modificó el trabajo por última vez.  | 
| Configuración de seguridad |  La configuración de seguridad del trabajo, que incluye configuraciones de cifrado de Amazon S3, cifrado de CloudWatch y cifrado de marcadores de trabajo.  | 
| Tiempo de espera | El valor del umbral de tiempo de espera de ejecución del trabajo. | 
| Capacidad asignada |  El número de unidades de procesamiento de datos (DPU) de AWS Glue asignadas a esta ejecución de trabajo. Para obtener más información acerca de la planificación de capacidad, consulte [Monitoreo para planificar la capacidad de DPU](https://docs.aws.amazon.com/glue/latest/dg/monitor-debug-capacity.html) en la *Guía para desarrolladores de AWS Glue*.  | 
| Capacidad máxima |  La capacidad máxima disponible para la ejecución del trabajo.  | 
| Número de procesos de trabajo | El número de empleados utilizados para la ejecución del trabajo.  | 
| Tipo de empleado |  Tipo de empleados predefinidos asignados para la ejecución del trabajo. Los valores pueden ser `G.1X` o `G.2X`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/view-job-runs.html)  | 
| Registros | Un enlace a los registros de trabajo para el registro continuo (/aws-glue/jobs/logs-v2).  | 
| Registros de salida | Un enlace a los archivos de registro de salida del trabajo (/aws-glue/jobs/output). | 
| Registros de errores | Un enlace a los archivos de registro de error del trabajo (/aws-glue/jobs/error). | 

También puede ver los siguientes elementos adicionales, que también están disponibles al consultar la información de las ejecuciones de trabajos recientes. Para obtener más información, consulte [Ver información sobre las ejecuciones de trabajos recientes](managing-jobs-chapter.md#view-job-run-details).
+ **Argumentos de entrada**
+ **Registros continuos**
+ **Métricas**: puede ver visualizaciones de métricas básicas. Para obtener más información sobre las métricas incluidas, consulte [Visualización de métricas de Amazon CloudWatch para una ejecución de trabajo de Spark](#monitoring-job-run-metrics).
+ **Interfaz de usuario de Spark**: puede visualizar los registros de Spark para su trabajo en la interfaz de usuario de Spark. Para obtener más información acerca de cómo usar la interfaz de usuario de Spark Web, consulte [Monitorización de trabajos mediante la interfaz de usuario web de Apache Spark](monitor-spark-ui.md). Habilite esta característica; para ello, siga el procedimiento que se describe en [Habilitación de la interfaz de usuario web de Apache Spark para trabajos de AWS Glue](monitor-spark-ui-jobs.md).

## Visualización de métricas de Amazon CloudWatch para una ejecución de trabajo de Spark
<a name="monitoring-job-run-metrics"></a>

En la página de detalles de una ejecución de trabajo, debajo de la sección **Detalles de ejecución**, puede consultar las métricas de trabajo. AWS Glue Studio las envía a Amazon CloudWatch para cada ejecución de trabajo. 

AWS Glue notifica las métricas a Amazon CloudWatch cada 30 segundos. Las métricas de AWS Glue representan valores delta que se obtienen de los valores notificados con anterioridad. Si procede, los paneles de métricas acumulan (suman) los valores de 30 segundos para obtener un valor para el último minuto en su totalidad. Sin embargo, las métricas de Apache Spark que AWS Glue transfiere a Amazon CloudWatch, suelen ser valores absolutos que representan el estado actual en el momento en que se notifican. 

**nota**  
Debe configurar su cuenta para acceder a Amazon CloudWatch.

Las métricas proporcionan información sobre la ejecución de trabajo, como:
+ **Movimiento de datos de ETL**: número de bytes leídos o escritos en Amazon S3.
+ **Perfil de la memoria: montón utilizado**: el número de bytes de memoria utilizados por el montón de máquina virtual Java (JVM).
+ **Perfil de la memoria: uso del montón**: la fracción de memoria (escala: 0-1), mostrada como porcentaje, utilizada por el montón de JVM.
+ **Carga de CPU**: la fracción de carga del sistema de CPU usada (escala: 0-1), mostrada como porcentaje.

## Visualización de métricas de Amazon CloudWatch para una ejecución de trabajo de Ray
<a name="monitoring-job-run-metrics-ray"></a>

En la página de detalles de una ejecución de trabajo, debajo de la sección **Detalles de ejecución**, puede consultar las métricas de trabajo. AWS Glue Studio las envía a Amazon CloudWatch para cada ejecución de trabajo. 

AWS Glue notifica las métricas a Amazon CloudWatch cada 30 segundos. Las métricas de AWS Glue representan valores delta que se obtienen de los valores notificados con anterioridad. Si procede, los paneles de métricas acumulan (suman) los valores de 30 segundos para obtener un valor para el último minuto en su totalidad. Sin embargo, las métricas de Apache Spark que AWS Glue transfiere a Amazon CloudWatch, suelen ser valores absolutos que representan el estado actual en el momento en que se notifican. 

**nota**  
Debe configurar su cuenta para acceder a Amazon CloudWatch, tal y como se describe en .

En los trabajos de Ray, puede ver los siguientes gráficos de métricas agregadas. Con ellos, puede crear un perfil del clúster y sus tareas y acceder a información detallada sobre cada nodo. Los datos de serie temporal que respaldan estos gráficos están disponibles en CloudWatch para el análisis posterior.

**Perfil de la tarea: estado de la tarea**  
Muestra el número de tareas de Ray en el sistema. El ciclo de vida de cada tarea tiene su propia serie temporal.

**Perfil de la tarea: nombre de la tarea**  
Muestra el número de tareas de Ray en el sistema. Solo se muestran las tareas pendientes y activas. A cada tipo de tarea (por su nombre) se asigna su propia serie temporal.

**Perfil de clúster: CPU en uso**  
Muestra el número de núcleos de CPU que se utilizan. A cada nodo se asigna su propia serie temporal. Los nodos se identifican mediante direcciones IP, que son efímeras y solo se utilizan para identificación.

**Perfil de clúster: uso de memoria del almacén de objetos**  
Muestra el uso de memoria por parte de la caché de objetos de Ray. A cada ubicación de memoria (memoria física, almacenada en caché en el disco y volcada a Amazon S3) recibe su propia serie temporal. El almacén de objetos administra el almacenamiento de datos en todos los nodos del clúster. Para obtener más información, consulte [Objetos](https://docs.ray.io/en/latest/ray-core/objects.html) en la documentación de Ray.

**Perfil de clúster: recuento de nodos**  
Muestra la cantidad de nodos aprovisionados para el clúster.

**Detalle del nodo: uso de la CPU**  
Muestra el uso de la CPU en cada nodo como porcentaje. Cada serie muestra un porcentaje agregado del uso de la CPU en todos los núcleos del nodo.

**Detalle del nodo: uso de memoria**  
Muestra el uso de memoria (en GB) en cada nodo. Cada serie muestra la memoria agregada entre todos los procesos del nodo, incluidas las tareas de Ray y el proceso de almacenamiento de Plasma. Esto no reflejará los objetos almacenados en el disco o volcados a Amazon S3.

**Detalle del nodo: uso del disco**  
Muestra el uso del disco (en GB) en cada nodo.

**Detalle del nodo: velocidad de E/S del disco**  
Muestra las E/S del disco (en kB/s) en cada nodo.

**Detalle del nodo: rendimiento de E/S de red**  
Muestra las E/S de red (en kB/s) en cada nodo.

**Detalle del nodo: uso de la CPU por el componente de Ray**  
Muestra el uso de la CPU en fracciones de un núcleo. A cada componente de Ray en cada nodo se asigna su propia serie temporal.

**Detalle del nodo: uso de la memoria por el componente de Ray**  
Muestra el uso de memoria en GiB. A cada componente de Ray en cada nodo se asigna su propia serie temporal.

# Detectar y procesar información confidencial
<a name="detect-PII"></a>

 La transformación Detectar PII identifica la información de identificación personal (PII) en su origen de datos. Usted elige la entidad PII que desea identificar, cómo desea que se escaneen los datos y qué hacer con la entidad PII identificada por la transformación Detectar PII. 

 La transformación Detectar PII proporciona la capacidad de detectar, enmascarar o eliminar entidades definidas por el usuario o predefinidas por AWS. Esto permite aumentar la conformidad y reducir la responsabilidad. Por ejemplo, es posible que desee asegurarse de que no exista información de identificación personal en los datos que pueda leerse, y que desee enmascarar números de la seguridad social con una cadena fija (por ejemplo, xxx-xx-xxxx), números de teléfono o direcciones. 

 Para trabajar con datos confidenciales fuera de AWS Glue Studio, consulte [Usar la detección de datos confidenciales fuera de AWS Glue Studio](aws-glue-api-sensitive-data-example.md) 

**Topics**
+ [Elegir cómo desea que se escaneen los datos](#choose-datascan-pii)
+ [Elección de las entidades de PII que se desea detectar](#choose-pii-entities)
+ [Especificar el nivel de sensibilidad de detección](#sensitive-data-sensitivity)
+ [Elegir qué hacer con los datos de PII identificados](#choose-action-pii)
+ [Agregar anulaciones de acciones detalladas](#sensitive-data-fine-grained-actions-override)

## Elegir cómo desea que se escaneen los datos
<a name="choose-datascan-pii"></a>

 Cuando escanea su conjunto de datos en busca de datos confidenciales, como información de identificación personal (PII), puede elegir detectar la PII en cada fila o detectar las columnas que contienen datos de PII. 

![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/detect-fields-PII.png)


 Cuando elige **Detectar PII en cada celda**, elige escanear todas las filas del origen de datos. Se trata de un análisis exhaustivo para garantizar que se identifiquen las entidades de PII. 

 Cuando elige **Detectar campos que contienen PII**, elige escanear una muestra de filas en busca de entidades de PII. Esta es una forma de mantener bajos los costos y los recursos, al mismo tiempo que se identifican los campos en los que se encuentran las entidades de PII. 

 Cuando elige detectar campos que contienen PII, puede reducir los costos y mejorar el rendimiento mediante muestras de una parte de las filas. La elección de esta opción permitirá que especifique opciones adicionales: 
+  **Porción de muestra:** permite especificar el porcentaje de filas que se van a mostrar. Por ejemplo, si ingresa ‘50’, especifica que desea el 50 por ciento de las filas escaneadas para la entidad PII. 
+  **Umbrales de detección: ** permite especificar el porcentaje de filas que contienen la entidad PII para identificar que toda la columna tiene la entidad PII. Por ejemplo, si ingresa ‘10’, especifica que el número de la entidad PII, teléfono EE. UU., en las filas escaneadas debe ser del 10 por ciento o superior para que el campo se identifique como la entidad PII, teléfono EE. UU. Si el porcentaje de filas que contienen la entidad PII es inferior al 10 por ciento, ese campo no se etiquetará por tener la entidad PII, teléfono EE. UU., en él. 

## Elección de las entidades de PII que se desea detectar
<a name="choose-pii-entities"></a>

 Si ha seleccionado **Detectar PII en cada celda**, puede elegir entre tres opciones: 
+ Todos los patrones de PII disponibles: esto incluye las entidades de AWS.
+ Seleccionar categorías: si selecciona las categorías, los patrones de PII incluirán automáticamente los patrones de las categorías seleccionadas.
+ Seleccionar patrones específicos: solo se detectarán los patrones que seleccione.

 Para obtener una lista completa de los tipos de datos confidenciales administrados, consulte [Tipos de datos administrados](https://docs.aws.amazon.com/glue/latest/dg/sensitive-data-managed-data-types.html). 

### Elegir entre todos los patrones de PII disponibles
<a name="w2aac33c23c21c11"></a>

 Si elige **Todos los patrones de PII disponibles**, seleccione entidades predefinidas por AWS. Puede seleccionar una entidad, varias o todas ellas. 

![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/pii-select-entities-to-detect.png)


### Seleccionar categorías
<a name="w2aac33c23c21c15"></a>

 Si ha elegido **Seleccionar categorías** como patrones de PII que se deben detectar, puede elegir entre las opciones del menú desplegable. Tenga en cuenta que algunas entidades pueden pertenecer a más de una categoría. Por ejemplo, *Nombre de la persona* es una entidad que pertenece a las categorías *Universal* y *HIPAA*. 
+  Universal (ejemplos: correo electrónico, tarjeta de crédito) 
+  HIPAA (ejemplos: licencia de conducir de EE. UU., código del sistema de codificación de procedimientos comunes de atención médica [HCPCS]) 
+  Redes (ejemplos: dirección IP, dirección MAC) 
+ Argentina
+ Australia
+ Austria
+ Bélgica
+ Bosnia
+ Bulgaria
+ Canadá
+ Chile
+ Colombia
+ Croacia
+ Chipre
+ Chequia
+ Dinamarca
+ Estonia
+ Finlandia
+ Francia
+ Alemania
+ Grecia
+ Hungría
+ Irlanda
+ Corea
+ Japón
+ México
+ Países Bajos
+ Nueva Zelanda
+ Noruega
+ Portugal
+ Rumanía
+ Singapur
+ Eslovaquia
+ Eslovenia
+ España
+ Suecia
+ Suiza
+ Turquía
+ Ucrania
+ Estados Unidos
+ Reino Unido
+ Venezuela

### Seleccionar patrones específicos
<a name="w2aac33c23c21c19"></a>

 Si elige **Seleccionar patrones específicos** como patrones de PII que se deben detectar, puede buscar o examinar una lista de patrones que ya haya creado, o bien crear un nuevo patrón de entidad de detección. 

 En los siguientes pasos se describe la creación de un nuevo patrón personalizado para detectar información confidencial. Creará el patrón personalizado al ingresar un nombre para dicho patrón, agregará una expresión regular y, opcionalmente, definirá palabras de contexto. 

 

 

1.  Para crear un nuevo patrón, haga clic en el botón **Crear nuevo**.   
![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/detectpii-create-new.png)

1.  En la página Crear entidad de detección, ingrese el nombre de la entidad y una expresión regular. La expresión regular (regex) es lo que AWS Glue utilizará para buscar coincidencias de entidades. 

1.  Haga clic en **Validar**. Si la validación se realiza correctamente, aparecerá un mensaje de confirmación que indica que la cadena es una expresión regular válida. Si la validación no se realiza correctamente, aparecerá un mensaje que indica que la cadena no se ajusta al formato adecuado ni a los caracteres, los operadores o las construcciones aceptados. 

1.  Puede optar por agregar palabras contextuales además de la expresión regular. Las palabras contextuales pueden aumentar la probabilidad de coincidencia. Pueden resultar útiles en los casos en que los nombres de los campos no ofrezcan información descriptiva sobre la entidad. Por ejemplo, los números de la seguridad social pueden denominarse "NSS" o "SS". Agregar estas palabras contextuales puede ayudar a encontrar una coincidencia de la entidad. 

1.  Haga clic en **Crear** para crear la entidad de detección. Todas las entidades creadas son visibles en la consola de AWS Glue Studio. Haga clic en **Entidades de detección** en el menú de navegación de la izquierda. 

    Puede editar, eliminar o crear entidades de detección desde la página **Entidades de detección**. También puede buscar un patrón mediante el campo de búsqueda. 

## Especificar el nivel de sensibilidad de detección
<a name="sensitive-data-sensitivity"></a>

 Puede establecer el nivel de sensibilidad al utilizar la detección de datos confidenciales. 
+  **Alto**: (predeterminado) detecta más entidades para los casos de uso que requieren un mayor nivel de sensibilidad. Todos los trabajos de AWS Glue creados después de noviembre de 2023 se activan automáticamente en esta configuración. 
+  **Bajo**: detecta menos entidades y reduce los falsos positivos. 

![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/detect-sensitve-data-sensitvity-new.png)


## Elegir qué hacer con los datos de PII identificados
<a name="choose-action-pii"></a>

 Si optó por detectar PII en todo el origen de datos, puede elegir una acción global a aplicar: 
+  **Enriquecer los datos con los resultados de detección:** si eligió Detectar PII en cada celda, puede almacenar las entidades detectadas en una nueva columna. 
+  **Texto detectado de redacción:** puede reemplazar el valor de PII detectado por una cadena que especifique en el campo opcional Reemplazo de entrada de texto. Si no se especifica ninguna cadena, la entidad PII detectada se sustituye por ‘\$1\$1\$1\$1\$1\$1\$1’. 
+  **Texto detectado de redacción:** puede reemplazar parte del valor de PII detectado por una cadena que elija. Hay dos opciones posibles: dejar los extremos desenmascarados o enmascararlos proporcionando un patrón de expresiones regulares explícito. Esta característica todavía no está disponible en AWS Glue 2.0. 
+  **Aplicar hash criptográfico**: puede pasar el valor de PII detectado a una función de hash criptográfico SHA-256 y reemplazar el valor por la salida de la función. 

![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/detect-sensitive-data-global-action.png)


### Diferencias entre AWS Glue las versiones 2.0 y 3.0\$1
<a name="sensitive-data-detection-glue-versions"></a>

 Los trabajos AWS Glue 2.0 devolverán un nuevo DataFrame con la información de PII detectada para cada columna en una columna adicional. Cualquier redacción o trabajo hash está visible dentro del guion de AWS Glue en la pestaña visual. 

 Los trabajos de AWS Glue 3.0 y 4.0 devolverán un nuevo DataFrame con esta misma columna complementaria. Hay una nueva clave para "actionUsed" y puede ser una de las siguientes: `DETECT`, `REDACT`, `PARTIAL_REDACT` o `SHA256_HASH`. Si se selecciona una acción de enmascaramiento, el DataFrame devolverá datos con el enmascaramiento de datos confidenciales. 

## Agregar anulaciones de acciones detalladas
<a name="sensitive-data-fine-grained-actions-override"></a>

 Se pueden añadir ajustes adicionales de detección y acción a la tabla de anulaciones de acciones detalladas. Esto le permite: 
+  **Incluir o excluir determinadas columnas de la detección**: un esquema inferido en el origen de datos rellenará la tabla con las columnas disponibles. 
+  **Especifique ajustes específicos que sean más detallados que mediante acciones globales**. Por ejemplo, puede especificar distintos ajustes de texto de redacción para distintos tipos de entidades. 
+  **Especifique una acción diferente a la acción global**: si desea aplicar una acción diferente a un tipo de datos confidenciales diferente, puede hacerlo aquí. Tenga en cuenta que no se pueden usar dos acciones de edición in situ diferentes (redacción y codificación) en la misma columna, pero siempre se puede usar la función de detección. 

![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/detect-sensitive-data-fga-overrides.png)


# Administración de trabajos de ETL con AWS Glue Studio
<a name="managing-jobs-chapter"></a>

Puede usar la interfaz gráfica simple en AWS Glue Studio para administrar los trabajos de ETL. En el menú de navegación, seleccione **Trabajos** para ver la página **Trabajos**. En esta página, puede ver todos los trabajos que ha creado con AWS Glue Studio o con la consola de AWS Glue. Puede ver, administrar y ejecutar sus trabajos en esta página. 

**Topics**
+ [Iniciar una ejecución de trabajo](#start-jobs)
+ [Programar ejecuciones de trabajo](#schedule-jobs)
+ [Administrar programaciones de trabajo](#manage-schedules)
+ [Detener ejecuciones de trabajo](#stop-jobs)
+ [Ver los trabajos](#view-jobs)
+ [Ver información sobre las ejecuciones de trabajos recientes](#view-job-run-details)
+ [Ver el script de trabajo](#view-job-script)
+ [Modificar las propiedades del trabajo](#edit-jobs-properties)
+ [Guardar el trabajo](#save-job)
+ [Clonación de un trabajo](#clone-jobs)
+ [Eliminación de trabajos](#delete-jobs)

## Iniciar una ejecución de trabajo
<a name="start-jobs"></a>

En AWS Glue Studio, puede ejecutar los trabajos bajo demanda. Un trabajo puede ejecutarse varias veces y cada vez que ejecute el trabajo, AWS Glue recopila información sobre las actividades y el rendimiento del trabajo. Esta información se conoce como una *ejecución de trabajo* y se identifica mediante un ID de ejecución de trabajo.

Puede iniciar una ejecución de trabajo de las siguientes maneras en AWS Glue Studio:
+ En la página **Trabajos**, elija el trabajo que desea iniciar y, luego, elija el botón **Ejecutar trabajo**.
+ Si está viendo un trabajo en el editor visual y el trabajo se ha guardado, puede elegir el botón **Ejecución** para iniciar una ejecución de trabajo.

Para obtener más información acerca de las ejecuciones de trabajos, consulte [Uso de trabajos en la consola de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/console-jobs.html) en la *Guía para desarrolladores de AWS Glue*.

## Programar ejecuciones de trabajo
<a name="schedule-jobs"></a>

En AWS Glue Studio, puede crear una programación para que los trabajos se ejecuten en momentos específicos. Puede especificar restricciones, como la cantidad de veces que desea que se ejecute un trabajo, qué días de la semana se ejecutarán y a qué hora. Estas restricciones se basan en `cron` y tienen las mismas limitaciones que `cron`. Por ejemplo, si decide ejecutar su trabajo el día 31 de cada mes, tenga en cuenta que algunos meses no tienen 31 días. Para obtener más información acerca de `cron`, consulte [Expresiones Cron](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions) en la *Guía para desarrolladores de AWS Glue*. 

**Para ejecutar trabajos de acuerdo con una programación**

1. Utilice uno de los métodos siguientes para crear una programación de trabajo:
   + En la página **Trabajos** elija el trabajo para el que desea crear una programación, elija **Acciones** y, a continuación, elija **Programar trabajo**.
   + Si está viendo un trabajo en el editor visual y el trabajo se ha guardado, elija la pestaña **Programaciones**. A continuación, elija **Crear programación**.

1. En la página **Programar ejecución de trabajo**, escriba la siguiente información:
   + **Nombre**: ingrese un nombre para su programación de trabajo. 
   + **Frecuencia**: ingrese la frecuencia para la programación de trabajo. Puede elegir entre las siguientes opciones: 
     + **Por hora**: el trabajo se ejecutará cada hora, comenzando en un minuto específico. Puede especificar el **Minuto** de la hora que debe ejecutarse el trabajo. De forma predeterminada, cuando elige por hora, el trabajo se ejecuta al comenzar la hora (minuto 0).
     + **Por día**: el trabajo se ejecutará todos los días, comenzando a la hora indicada. Puede especificar el **Minuto** de la que hora en la que debe ejecutarse el trabajo y la **Hora de inicio** para el trabajo. Las horas se especifican con un reloj de 23 horas, en el que se utilizan los números de 13 a 23 para las horas de la tarde. Los valores predeterminados para minuto y hora son 0, lo que significa que si selecciona **Por día**, el trabajo se ejecutará a medianoche de manera predeterminada.
     + **Por semana**: el trabajo se ejecutará cada semana en uno o más días. Además de la misma configuración descrita anteriormente para Por día, puede elegir los días de la semana en los que se ejecutará el trabajo. Puede elegir uno o más días.
     + **Por mes**: el trabajo se ejecutará todos los meses en un día específico. Además de la misma configuración descrita anteriormente para Por día, puede elegir el día del mes en el que se ejecutará el trabajo. Especifique el día como un valor numérico del 1 al 31. Si selecciona un día que no existe en un mes, por ejemplo, el 30 de febrero, entonces el trabajo no se ejecuta ese mes.
     + **Personalizado**: ingrese una expresión para la programación del trabajo mediante la sintaxis de `cron`. Las expresiones Cron le permiten crear programaciones más complejas, como el último día del mes (en lugar de un día específico del mes) o cada tres meses los días 7 y 21 del mes. 

       Consulte [Expresiones Cron](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html#CronExpressions) en la *Guía para desarrolladores de AWS Glue*
   + **Descripción**: de forma opcional, puede especificar una descripción para la programación de trabajos. Si planea utilizar la misma programación para múltiples trabajos, incluir una descripción facilita determinar las tareas de una programación del trabajo.

1. Elija **Crear programación** para guardar la programación de trabajos.

1. Después de crear la programación, aparece un mensaje de éxito en la parte superior de la página de la consola. Puede elegir **Detalles del trabajo** en este banner para ver los detalles del trabajo. Esto abre la página del editor visual de trabajos, con la pestaña **Programaciones** seleccionada.

## Administrar programaciones de trabajo
<a name="manage-schedules"></a>

Después de crear programaciones para un trabajo, puede abrir el trabajo en el editor visual y elegir la pestaña **Programaciones** para administrar las programaciones.

En la pestaña **Programaciones** en el editor visual, puede llevar a cabo las siguientes tareas:
+ Crear una nueva programación.

  Elija **Crear programación** y, a continuación, ingrese la información de su programación tal y como se describe en [Programar ejecuciones de trabajo](#schedule-jobs).
+ Edición de una programación existente.

  Elija la programación que desea editar y, a continuación, elija **Acción** y luego **Editar programación**. Cuando elija editar una programación existente, **Frecuencia** aparece como **Personalizado**, y la programación se muestra como una expresión `cron`. Puede modificar la expresión `cron`, o especificar una nueva programación mediante el botón **Frecuencia**. Cuando termine de realizar los cambios, elija **Actualizar programación**.
+ Pausar una programación activa.

  Elija una programación activa y, a continuación, elija **Acción**, y luego **Pausar programación**. La programación se desactiva en forma instantánea. Elija el botón actualizar (recargar) para ver el estado actualizado de la programación de trabajos.
+ Reanudar una programación en pausa.

  Elija una programación desactivada y, a continuación, elija **Acción**, y luego **Reanudar programación**. La programación se activa en forma instantánea. Elija el botón actualizar (recargar) para ver el estado actualizado de la programación de trabajos.
+ Eliminar una programación.

  Elija la programación que desea eliminar y, a continuación, elija **Acción** y luego **Eliminar programación**. La programación se elimina en forma instantánea. Elija el botón actualizar (recargar) para ver la programación de trabajo actualizada. La programación mostrará un estado de **Eliminación** hasta que se haya eliminado por completo.

## Detener ejecuciones de trabajo
<a name="stop-jobs"></a>

Puede detener un trabajo antes de que haya completado su ejecución. Puede elegir esta opción si sabe que el trabajo no está configurado correctamente o si el trabajo tarda demasiado en completarse.

En la página **Monitoreo**, en la lista **Ejecuciones de trabajo**, elija el trabajo que desea detener, elija **Acciones** y, a continuación, elija **Detener ejecución**. 

## Ver los trabajos
<a name="view-jobs"></a>

Puede ver todos sus trabajos en la página **Trabajos**. Puede acceder a esta página al seleccionar **Trabajos** en el panel de navegación.

En la página **Trabajos**, puede ver todos los trabajos que se crearon en su cuenta. La lista **Sus trabajos** muestra el nombre del trabajo, su tipo, el estado de la última ejecución de ese trabajo y las fechas en las que se creó y modificó por última vez el trabajo. Puede elegir el nombre de un trabajo para ver información detallada de ese trabajo.

También puede utilizar el panel Monitoreo para ver todos los trabajos. Puede acceder al panel al elegir **Monitoreo** en el panel de navegación. 

### Personalizar la visualización del trabajo
<a name="view-jobs-customize"></a>

Puede personalizar la forma en que se muestran los trabajos en la sección **Sus trabajos** en la página **Trabajos**. Además, puede escribir texto en el campo de texto de búsqueda para mostrar sólo los trabajos con un nombre que contenga ese texto.

Si elige el ícono de configuración ![\[\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/manage-console-icon-settings.png) en la sección **Sus trabajos**, puede personalizar cómo AWS Glue Studio muestra la información en la tabla. Puede elegir ajustar las líneas de texto en la pantalla, cambiar el número de trabajos mostrados en la página y especificar qué columnas mostrar.

## Ver información sobre las ejecuciones de trabajos recientes
<a name="view-job-run-details"></a>

Un trabajo puede ejecutarse varias veces a medida que se agregan nuevos datos en la ubicación de origen. Cada vez que se ejecuta un trabajo, se le asigna un ID único y se recopila información sobre esa ejecución. Puede utilizar los siguientes métodos para ver esta información:
+ Elija la pestaña **Ejecuciones** del editor visual para ver la información de ejecución del trabajo que se muestra actualmente.

  En la pestaña **Ejecuciones** (página **Ejecuciones de trabajo recientes**), se incluye una tarjeta para cada trabajo ejecutado. La información que se muestra en la pestaña **Ejecuciones** incluye lo siguiente:
  + ID de ejecución del trabajo
  + La cantidad de intentos de ejecución de este trabajo
  + Estado de la ejecución del trabajo
  + Hora de inicio y finalización de la ejecución del trabajo
  + El tiempo de ejecución para la ejecución del trabajo
  + Un enlace a los archivos de registro del trabajo
  + Un enlace a los archivos de registro de error del trabajo
  + Error devuelto por trabajos fallidos
+ Puede seleccionar una ejecución del trabajo para ver información adicional, que incluya lo siguiente:
  + **Argumentos de entrada**
  + **Registros continuos**
  + **Métricas**: puede ver visualizaciones de métricas básicas. Para obtener más información sobre las métricas incluidas, consulte [Visualización de métricas de Amazon CloudWatch para una ejecución de trabajo de Spark](view-job-runs.md#monitoring-job-run-metrics).
  + **Interfaz de usuario de Spark**: puede visualizar los registros de Spark para su trabajo en la interfaz de usuario de Spark. Para obtener más información acerca de cómo usar la interfaz de usuario de Spark Web, consulte [Monitorización de trabajos mediante la interfaz de usuario web de Apache Spark](monitor-spark-ui.md). Habilite esta característica; para ello, siga el procedimiento que se describe en [Habilitación de la interfaz de usuario web de Apache Spark para trabajos de AWS Glue](monitor-spark-ui-jobs.md).

Puede seleccionar **Ver detalles** para ver información similar en la página de detalles de la ejecución del trabajo. Como alternativa, puede ir a la página de detalles de la ejecución del trabajo a través de la página **Supervisión**. En el panel de navegación, seleccione **Monitoreo**. Desplácese hacia abajo en la lista **Ejecuciones de trabajo**. Elija el trabajo y, a continuación, elija **Ver detalles de ejecución**. Los contenidos se describen en [Visualización de los detalles de una ejecución de trabajo](view-job-runs.md#monitoring-job-run-details).

Para obtener más información acerca de los registros de trabajo, consulte [Visualización de los registros de ejecución de trabajo](view-job-runs.md#monitoring-job-run-logs).

## Ver el script de trabajo
<a name="view-job-script"></a>

Después de proporcionar información para todos los nodos del trabajo, AWS Glue Studio genera un script que el trabajo utiliza para leer los datos de la fuente, transformarlos y escribirlos en la ubicación de destino. Si guarda el trabajo, puede ver este script en cualquier momento.

**Para ver el script generado para su trabajo**

1. En el panel de navegación, elija **Trabajos**.

1. En la página **Trabajos**, en la lista **Sus trabajos** elija el nombre del trabajo que desea revisar. Como alternativa, puede seleccionar un trabajo en la lista, elegir la opción **Acciones** y, a continuación, elegir **Editar trabajo**.

1. En la página del editor visual, elija la pestaña **Script** en la parte superior para ver el script de trabajo. 

   Si desea editar el script de trabajo, consulte [Guía de programación de AWS Glue](edit-script.md).

## Modificar las propiedades del trabajo
<a name="edit-jobs-properties"></a>

Los nodos del diagrama de trabajo definen las acciones que realiza el trabajo, pero también se pueden configurar varias propiedades para el trabajo. Estas propiedades determinan el entorno en el que se ejecuta el trabajo, los recursos que utiliza, la configuración de umbral, la configuración de seguridad, etc.

**Para personalizar el entorno de ejecución del trabajo**

1. En el panel de navegación, elija **Jobs (Trabajos)**.

1. En la página **Jobs (Trabajos)**, en la lista **Your jobs (Sus trabajos)** elija el nombre del trabajo que desea revisar.

1. En la página del editor visual, elija la pestaña **Detalles del trabajo** en la parte superior del panel de edición del trabajo. 

1. Modifique las propiedades del trabajo, según sea necesario. 

   Para obtener más información acerca de las propiedades de trabajo, consulte [Definición de las propiedades del trabajo](https://docs.aws.amazon.com/glue/latest/dg/add-job.html#create-job) en la *Guía para desarrolladores de AWS Glue*. 

1. Expanda la sección **Propiedades avanzadas** si necesita especificar estas propiedades adicionales del trabajo:
   + **Nombre del archivo de script**: el nombre del archivo que almacena el script de trabajo en Amazon S3.
   + **Ruta del script**: ubicación de Amazon S3 donde se almacena el script de trabajo.
   + **Métricas de trabajo**: (no disponible para trabajos de intérprete de comandos de Python) activa la creación de métricas de Amazon CloudWatch cuando se ejecuta este trabajo.
   + **Registro continuo**: (no disponible para trabajos de intérprete de comandos de Python) activa el registro continuo en CloudWatch, para que los registros estén disponibles para su visualización antes de que finalice el trabajo.
   + **Interfaz de usuario de Spark** y **Ruta de registros de la interfaz de usuario de Spark**: (no disponible para trabajos de intérprete de comandos de Python) activa el uso de la interfaz de usuario de Spark para supervisar este trabajo y especifica la ubicación de los registros de la interfaz de usuario de Spark.
   + **Concurrencia máxima**: establece el número máximo de ejecuciones concurrentes que están permitidas para este trabajo.
   + **Ruta temporal**: la ubicación de un directorio de trabajo en Amazon S3 donde los resultados intermedios temporales se escriben cuando AWS Glue ejecuta el script de trabajo. 
   + **Umbral de notificación de retraso (minutos)**: especifica un umbral de retraso para el trabajo. Si el trabajo se ejecuta durante un tiempo más largo que el especificado por el umbral, entonces, AWS Glue envía una notificación de retraso para el trabajo a CloudWatch.
   + **Configuración de seguridad** y **Cifrado en el lado del servidor**: utilice estos campos para elegir las opciones de cifrado para el trabajo.
   + **Utilizar Glue Data Catalog como metaalmacén de Hive**: elija esta opción si desea utilizar AWS Glue Data Catalog como una alternativa a Apache Hive Metastore.
   + **Conexión de red adicional**: para un origen de datos en una VPC, puede especificar una conexión de tipo `Network`, a fin de garantizar que su trabajo acceda a sus datos a través de la VPC.
   + **Ruta de la biblioteca Python**, **Ruta de archivos JAR dependientes** (no disponible para trabajos de intérprete de comandos de Python), o **Ruta de archivos referenciados**: utilice estos campos para especificar la ubicación de los archivos adicionales que el trabajo utiliza cuando ejecuta el script.
   + **Parámetros del trabajo**: puede agregar un conjunto de pares de clave-valor que se transfieren como parámetros con denominación al script de trabajo. En las llamadas de Python a AWS Glue API, es mejor transferir los parámetros explícitamente por nombre. Para obtener más información sobre el uso de parámetros en un script de trabajo, consulte [Transferencia y acceso a los parámetros de Python en AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html#aws-glue-programming-python-calling-parameters) en la *Guía para desarrolladores de AWS Glue*. 
   + **Etiquetas**: puede agregar etiquetas al trabajo para que le resulte más fácil organizarlos e identificarlos.

1. Después de modificar las propiedades del trabajo, guarde el trabajo.

### Almacenar archivos de mezclas aleatorias de Spark en Amazon S3
<a name="configure-shuffle"></a>

Algunos trabajos de ETL requieren leer y combinar información de diversas particiones, por ejemplo, cuando se utiliza una transformación de combinación. Esta operación se conoce como *mezclado aleatorio*. Durante una mezcla aleatoria, los datos se escriben en el disco y se transfieren a través de la red. Con AWS Glue, versión 3.0, puede configurar Amazon S3 como ubicación de almacenamiento para estos archivos. AWS Glue proporciona un administrador de mezclas aleatorias que escribe y lee archivos de mezcla aleatoria desde y hacia Amazon S3. La escritura y la lectura de archivos de mezcla aleatoria de Amazon S3 es más lenta (entre un 5 % y un 20 %) en comparación con el disco local (o Amazon EBS, que está muy optimizado para Amazon EC2). No obstante, Amazon S3 ofrece capacidad de almacenamiento ilimitada, por lo que no tiene que preocuparse por errores de “`No space left on device`” al ejecutar su trabajo.

**Para configurar su trabajo de modo que utilice Amazon S3 para archivos de mezcla aleatoria**

1. En la página **Trabajos**, en la lista **Sus trabajos** elija el nombre del trabajo que desea modificar.

1. En la página del editor visual, elija la pestaña **Job details (Detalles del trabajo)** en la parte superior del panel de edición del trabajo. 

   Desplácese hasta la sección **Parámetros del trabajo**.

1. Especifique los siguientes pares clave-valor.
   + `--write-shuffle-files-to-s3` — `true`

     Este es el parámetro principal que configura el administrador de mezclas aleatorias en AWS Glue para utilizar los buckets de Amazon S3 para escribir y leer datos aleatorios. Este parámetro tiene un valor predeterminado de `false`.
   + (Optional) `--write-shuffle-spills-to-s3`: `true`

     Este parámetro le permite descargar archivos de desbordamiento en buckets de Amazon S3, lo que proporciona resistencia adicional a su trabajo de Spark en AWS Glue. Esto solo es necesario para cargas de trabajo grandes que provocan grandes desbordamientos al disco. Este parámetro tiene un valor predeterminado de `false`.
   + (Optional) `--conf spark.shuffle.glue.s3ShuffleBucket`: `S3://<shuffle-bucket>`

     Este parámetro especifica el bucket de Amazon S3 que se utilizará al escribir los archivos de mezcla aleatoria. Si no establece este parámetro, la ubicación es la carpeta `shuffle-data` en la ubicación especificada para **Ruta temporal** (`--TempDir`).
**nota**  
Asegúrese de que la ubicación del bucket de mezcla aleatoria esté en la misma Región de AWS en la que se ejecuta el trabajo.   
Además, el servicio de mezcla aleatoria no limpia los archivos después de que el trabajo termine de ejecutarse, por lo que debe configurar las políticas de ciclo de vida de almacenamiento de Amazon S3 en la ubicación del bucket de mezcla aleatoria. Para obtener más información, consulte [Administración del ciclo de vida de almacenamiento](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) en la *Guía del usuario de Amazon S3*.

## Guardar el trabajo
<a name="save-job"></a>

Se muestra un globo de color rojo: **El trabajo no se ha guardado**, a la izquierda del botón **Guardar** hasta que guarde el trabajo. 

![\[Un óvalo rojo con la etiqueta “El trabajo no se ha guardado” a la izquierda del botón Guardar.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-graph-callout-not-saved_GA.png)


**Para guardar el trabajo**

1. Proporcione toda la información necesaria en las pestañas **Visual** y **Detalles del trabajo**.

1. Seleccione el botón **Guardar**.

   Después de guardar el trabajo, el globo “no guardado” cambia para mostrar la hora y la fecha en que se guardó el trabajo por última vez.

Si sale de AWS Glue Studio antes de guardar el trabajo, la próxima vez que inicie sesión en AWS Glue Studio, aparecerá una notificación. La notificación indica que hay un trabajo sin guardar y pregunta si desea restaurarlo. Si decide restaurar el trabajo, podrá continuar editándolo.

### Solución de errores al guardar un trabajo
<a name="save-job-troubleshooting"></a>

Si elige el botón **Guardar**, pero a su trabajo le falta información necesaria, aparecerá un globo rojo en la pestaña donde falta la información. El número en el globo indica cuántos campos faltantes se detectaron.

![\[Captura de pantalla que muestra las pestañas del panel del editor visual para un trabajo denominado “Trabajo sin título” con un globo con la etiqueta 2 en la pestaña Visual y un globo con la etiqueta 1 en la pestaña Detalles del trabajo.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/screenshot-save-job-error-in-graph-GA2.png)

+ Si un nodo del editor visual no está configurado correctamente, la pestaña **Visual** muestra un globo rojo y el nodo con el error muestra un símbolo de advertencia ![\[A red triangle with an exclamation point in the center\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/edit-graph-warning_icon.png).

  1. Elija el nodo. En el panel de detalles del nodo, aparece un globo rojo en la pestaña donde se encuentra la información faltante o incorrecta. 

  1. Elija la pestaña del panel de detalles del nodo que muestra un globo rojo y, a continuación, busque los campos problemáticos, que están resaltados. Un mensaje de error debajo de los campos proporciona información adicional sobre el problema.  
![\[Captura de pantalla que muestra la pestaña Visual en el editor de trabajos, que está marcada con un globo con la etiqueta 2. Se selecciona el nodo de origen de datos, que está marcado con una etiqueta de advertencia. En el panel de detalles del nodo, la pestaña Propiedades del origen de datos tiene un globo con la etiqueta 2 y está seleccionada. Dos campos, Base de datos y Tabla están resaltados en rojo y tienen mensajes debajo de ellos que indican que se requiere un valor en esos campos.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/screenshot-save-job-error-in-graph2.png)
+ Si hay un problema con las propiedades del trabajo, la pestaña **Detalles del trabajo** muestra un globo rojo. Elija esa pestaña y busque los campos problemáticos, que están resaltados. Los mensajes de error debajo de los campos proporcionan información adicional acerca del problema.  
![\[Captura de pantalla que muestra la pestaña Detalles del trabajo en el editor de trabajos, que está marcada con un globo con la etiqueta 1. El campo “Rol de IAM” está resaltado en rojo y tiene un mensaje debajo que indica que se requiere un valor.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/screenshot-save-job-error-in-job-details.png)

## Clonación de un trabajo
<a name="clone-jobs"></a>

Puede utilizar la acción **Clonar trabajo** para copiar un trabajo existente en un nuevo trabajo.

**Para crear un nuevo trabajo al copiar un trabajo existente**

1. En la página **Trabajos**, en la lista **Sus trabajos** elija el trabajo que desea duplicar.

1. En el menú **Acciones**, seleccione **Clonar trabajo**.

1. Ingrese un nombre para el nuevo trabajo. A continuación, puede guardar o editar el trabajo.

## Eliminación de trabajos
<a name="delete-jobs"></a>

Puede eliminar trabajos que ya no son necesarios. Puede eliminar uno o más trabajos en una sola operación.

**Para eliminar trabajos de AWS Glue Studio**

1. En la página **Trabajos**, en la lista **Sus trabajos** elija el trabajo que desea eliminar.

1. En el menú **Acciones**, elija **Eliminar trabajo**.

1. Verifique que desea eliminar el trabajo, ingrese **delete**.

También puede eliminar un trabajo guardado cuando esté viendo la pestaña **Detalles del trabajo** de ese trabajo en el editor visual.