

# Uso de los parámetros de trabajo en los trabajos de AWS Glue
<a name="aws-glue-programming-etl-glue-arguments"></a>

Al crear un trabajo de Glue AWS, establece algunos campos estándar, como `Role` y`WorkerType`. Puede proporcionar información de configuración adicional a través de los campos `Argument` (**Parámetros del trabajo** en la consola). En estos campos, puede proporcionar los trabajos de Glue AWS con los argumentos (parámetros) que se enumeran en este tema. 

 Para obtener más información acerca de la API de trabajo de Glue AWS, consulte [Jobs](aws-glue-api-jobs-job.md). 

**nota**  
 Los argumentos de trabajo tienen un límite de tamaño máximo de 260 KB. Una comprobación de validación generará un error si el tamaño del argumento es superior a 260 KB. 



## Configuración de los parámetros del trabajo
<a name="w2aac37c11b8c11"></a>

Puede configurar un trabajo a través de la consola, en la pestaña **Job details** (Detalles del trabajo), en el encabezado **Job Parameters** (Parámetro del trabajo). Para configurar un trabajo a través de AWS CLI, establezca `DefaultArguments` o `NonOverridableArguments` en un trabajo, o `Arguments` en la ejecución de un trabajo. Los argumentos establecidos en el trabajo se pasarán cada vez que se ejecute el trabajo, mientras que los argumentos establecidos en la ejecución del trabajo solo se pasarán para esa ejecución individual. 

Por ejemplo, a continuación se muestra la sintaxis para ejecutar un trabajo con `--arguments` para configurar un parámetro de trabajo.

```
$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py"'
```

## Acceder a los parámetros del trabajo
<a name="w2aac37c11b8c13"></a>

Al escribir scripts de Glue AWS, es posible que desee acceder a los valores de los parámetros del trabajo para modificar el comportamiento de su propio código. Proporcionamos métodos auxiliares para hacerlo en nuestras bibliotecas. Estos métodos resuelven los valores de los parámetros de ejecución del trabajo que anulan los valores de los parámetros del trabajo. Al resolver los parámetros establecidos en varios lugares, el trabajo `NonOverridableArguments` anulará el trabajo ejecutado `Arguments`, que anulará el trabajo `DefaultArguments`.

**En Python:**

En los trabajos de Python, proporcionamos una función llamada `getResolvedParameters`. Para obtener más información, consulte [Acceso a los parámetros mediante `getResolvedOptions`](aws-glue-api-crawler-pyspark-extensions-get-resolved-options.md). Los parámetros del trabajo están disponibles en la variable `sys.argv`.

**En Scala:**

En los trabajos de Scala, proporcionamos un objeto llamado `GlueArgParser`. Para obtener más información, consulte [AWS GlueAPI GlueArgParser Scala de](glue-etl-scala-apis-glue-util-glueargparser.md). Los parámetros del trabajo están disponibles en la variable `sysArgs`.

## Referencia de parámetros de trabajo
<a name="job-parameter-reference"></a>

**AWS Glue reconoce los siguientes nombres de argumentos que se pueden utilizar para configurar el entorno de scripts para los trabajos y las ejecuciones de trabajos:**

**`--additional-python-modules`**  
 Lista delimitada por comas que representa un conjunto de paquetes de Python que se deben instalar. Puede instalar los paquetes desde PyPI o proporcionar una distribución personalizada. Una entrada de paquete de PyPI tendrá el formato `{{package}}=={{version}}`, con el nombre y la versión del paquete de destino de PyPI. Una entrada de distribución personalizada es la ruta de S3 a la distribución.  
Las entradas utilizan la coincidencia de versiones de Python para hacer coincidir el paquete y la versión. Eso significa que tendrá que usar dos signos igual: `==`. Existen otros operadores de coincidencia de versiones; para obtener más información, consulte [PEP 440](https://peps.python.org/pep-0440/#version-matching).   
Para pasar las opciones de instalación del módulo a `pip3`, utilice el parámetro [--python-modules-installer-option](#python-modules-installer-option).

**`--auto-scale-within-microbatch`**  
El valor predeterminado es true. Este parámetro solo se puede usar para los trabajos de transmisión de Glue AWS, que procesan los datos de transmisión en una serie de microlotes y el escalado automático debe estar habilitado. Al establecer este valor en falso, calcula la media móvil exponencial de la duración del lote de los microlotes completados y lo compara con el tamaño de la ventana para determinar si se debe escalar verticalmente o reducir verticalmente el número de ejecutores. El escalado solo se produce cuando se completa un microlote. Al establecer este valor en verdadero, durante un microlote, escala verticalmente cuando el número de tareas de Spark permanece igual durante 30 segundos o cuando el procesamiento por lotes actual es superior al tamaño de la ventana. El número de ejecutores disminuirá si un ejecutor ha estado inactivo durante más de 60 segundos o si la media móvil exponencial de la duración del lote es baja. 

**`--class`**  
La clase de Scala que sirve de punto de entrada del script de Scala. Esto solo se aplica si `--job-language` está establecido en `scala`.

**`--continuous-log-conversionPattern`**  
Especifica un patrón de registro de conversión personalizado para un trabajo habilitado para el registro continuo. El patrón de conversión solo se aplica a los registros de controlador y de ejecutor. No afecta la barra de progreso de AWS Glue.

**`--continuous-log-logGroup`**  
Especifica el nombre de un grupo de registro personalizado de Amazon CloudWatch para un trabajo habilitado para el registro continuo.

**`--continuous-log-logStreamPrefix`**  
 Especifica el prefijo de un flujo de registro personalizado de CloudWatch para un trabajo habilitado para el registro continuo.

**`--customer-driver-env-vars` y `--customer-executor-env-vars`**  
Estos parámetros establecen variables de entorno en sistemas operativos de manera respectiva para cada trabajador (controlador o ejecutor). Puede utilizar estos parámetros al crear plataformas o esquemas personalizados además de AWS Glue para permitir a los usuarios poder escribir por encima. Al activar estos dos marcadores, podrá establecer distintas variables de entorno para el controlador y para el ejecutor respectivamente sin tener que inyectar la misma lógica en el propio script del trabajo.   
**Ejemplo de uso**  
A continuación se muestra un ejemplo de la utilización de estos parámetros:

```
"—customer-driver-env-vars", "CUSTOMER_KEY1=VAL1,CUSTOMER_KEY2=\"val2,val2 val2\"",
"—customer-executor-env-vars", "CUSTOMER_KEY3=VAL3,KEY4=VAL4"
```
El establecimiento de estos en el argumento del trabajo equivale a la ejecución de los siguientes comandos:  
En el controlador:  
+ exportar CUSTOMER\_KEY1=VAL1
+ exportar CUSTOMER\_KEY2="val2,val2 val2"
En el ejecutor:  
+ exportar CUSTOMER\_KEY3=VAL3
Luego, en el propio script de trabajo, se pueden recuperar las variables de entorno con `os.environ.get("CUSTOMER_KEY1")` o `System.getenv("CUSTOMER_KEY1")`.   
**Sintaxis de uso obligatorio**  
Controle los siguientes estándares al definir las variables del entorno:
+ Cada clave debe contener el `CUSTOMER_ prefix`.

  Por ejemplo: para `"CUSTOMER_KEY3=VAL3,KEY4=VAL4"`, se ignorará `KEY4=VAL4` y no se establecerá.
+ Cada par de clave y valor debe estar delimitado por una coma simple.

  Por ejemplo: .: `"CUSTOMER_KEY3=VAL3,CUSTOMER_KEY4=VAL4"`
+ Si el valor contiene espacios o comas, debe encerrarse entre comillas.

  Por ejemplo: .: `CUSTOMER_KEY2=\"val2,val2 val2\"`
Esta sintaxis modela con precisión los estándares de configuración de las variables de entorno de bash.

**`--datalake-formats` **  
Es compatible con la versión 3.0 y posteriores de AWS Glue.  
Especifica el marco de lago de datos que se va a utilizar. AWS Glue agrega los archivos JAR necesarios para los marcos que especifique en `classpath`. Para obtener más información, consulte [Uso de marcos de lagos de datos con trabajos de ETL de AWS Glue](aws-glue-programming-etl-datalake-native-frameworks.md).  
Puede especificar uno o varios de los siguientes valores, separados por una coma:  
+ `hudi`
+ `delta`
+ `iceberg`
Por ejemplo, pase el siguiente argumento para especificar los tres marcos.  

```
'--datalake-formats': 'hudi,delta,iceberg'
```

**`--disable-proxy-v2`**  
 Deshabilita el proxy de servicio para permitir llamadas de servicio de AWS a Amazon S3, CloudWatch y AWS Glue originadas desde su script a través de la VPC. Para obtener más información, consulte [Configuración de las llamadas de AWS para que pasen a través de su VPC](https://docs.aws.amazon.com/glue/latest/dg/connection-VPC-disable-proxy.html). Para deshabilitar el proxy del servicio, defina el valor de este parámetro en `true`.

**`--enable-auto-scaling`**  
Cuando este valor se configura en `true`, se activa el escalado automático y la facturación por proceso de trabajo.

**`--enable-continuous-cloudwatch-log`**  
Permite un registro continuo en tiempo real de los trabajos de AWS Glue. Puede ver los registros de trabajos de Apache Spark en tiempo real en CloudWatch.

**`--enable-continuous-log-filter`**  
Especifica un filtro estándar (`true`) o ningún filtro (`false`) al crear o editar un trabajo habilitado para el registro continuo. Si se elige Standard filter (Filtro estándar), se filtran los mensajes de registro de estado de Apache Hadoop YARN y de controlador/ejecutor de Apache Hadoop YARN no útiles. Si se elige sin filtro, se verán todos los mensajes de registro.

**`--enable-glue-datacatalog`**  
Permite utilizar el Catálogo de datos de AWS Glue como metaalmacén de Apache Spark Hive. Para habilitar esta característica, establezca el valor como `true`.

**`--enable-job-insights`**  
Permite la supervisión adicional del análisis de errores con la información de ejecución de trabajos de AWS Glue. Para obtener más información, consulte [Supervisión con Información de ejecuciones de trabajos de AWS Glue](monitor-job-insights.md). De forma predeterminada, el valor se establece en `true` y la información de ejecución de trabajos está habilitada.  
Esta opción está disponible para AWS Glule versión 2.0 y 3.0.

**`--enable-lakeformation-fine-grained-access`**  
Permite un control de acceso detallado para trabajos con AWS Glue. Para obtener más información, consulte [Uso de AWS Glue con AWS Lake Formation para obtener un control de acceso detallado](security-lf-enable.md).

**`--enable-metrics`**  
Permite recopilar métricas para generar perfiles de trabajo en la ejecución de este trabajo. Estas métricas se encuentran disponibles en la consola de AWS Glue y en la consola de Amazon CloudWatch. El valor de este parámetro no es relevante. Para activar esta característica, puede proporcionar a este parámetro cualquier valor, pero se recomienda `true` para mayor claridad. Para deshabilitar esta característica, elimine este parámetro de la configuración de su trabajo.

**`--enable-observability-metrics`**  
 Permite un conjunto de métricas de observabilidad para generar información sobre lo que sucede dentro de cada trabajo que se ejecuta en la página Job Runs Monitoring en la consola AWS Glue y la consola Amazon CloudWatch. Para habilitar esta característica, establezca el valor como true (verdadero). Para deshabilitar esta característica, defínala en `false` o elimine este parámetro de la configuración de su trabajo. 

**`--enable-rename-algorithm-v2`**  
Establece la versión del algoritmo de cambio de nombre de EMRFS a la versión 2. Cuando un trabajo de Spark utiliza el modo de sobrescritura de partición dinámica, existe la posibilidad de que se cree una partición duplicada. Por ejemplo, puede tener como resultado una partición duplicada como `s3://bucket/table/location/p1=1/p1=1`. Aquí, P1 es la partición que se está sobrescribiendo. El algoritmo de cambio de nombre versión 2 corrige este problema.  
La opción solo está disponible en la versión 1.0 de AWS Glue.

**`--enable-s3-parquet-optimized-committer`**  
Habilita el confirmador optimizado para S3 de EMRFS de forma que puedan escribirse datos de Parquet en Amazon S3. Puede suministrar el par parámetro/valor a través de la consola de AWS Glue cuando cree o actualice un trabajo de AWS Glue. Al establecer el valor en **true**, se habilita el confirmador. De forma predeterminada, la marca está activada en AWS Glue 3.0 y desactivada en AWS Glue 2.0.  
Para obtener más información, consulte este artículo sobre el [uso del confirmador optimizado para S3 de EMRFS](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-s3-optimized-committer.html).

**`--enable-spark-ui`**  
Cuando se establece en `true`, activa la característica para usar la interfaz de usuario de Spark para monitorear y depurar trabajos de ETL de AWS Glue.

**`--executor-cores`**  
Número de tareas de Spark que se pueden ejecutar en paralelo. Esta opción es compatible con Glue 3.0\+ AWS. El valor no debe superar el doble de la cantidad de vCPU en el tipo de trabajador, es decir, 8 en `G.1X`, 16 en `G.2X`, 32 en `G.4X`, 64 en `G.8X`, 96 en `G.12X`, 128 en `G.16X`, y 8 en `R.1X`, 16 en `R.2X`, 32 en `R.4X`, 64 en `R.8X`. Debe tener cuidado al actualizar esta configuración, ya que podría afectar al rendimiento laboral porque el aumento del paralelismo entre las tareas provoca presión en la memoria y el disco y podría limitar los sistemas de origen y destino (por ejemplo, provocaría más conexiones simultáneas en Amazon RDS).

**`--extra-files`**  
Las rutas de Amazon S3 a archivos adicionales, por ejemplo, archivos de configuración que AWS Glue copia en el directorio de trabajo de su script en el nodo del controlador antes de ejecutarlo. Varios valores deben ser rutas completas separadas por una coma (`,`). El valor puede ser archivos individuales o ubicaciones de directorios. Esta opción no es compatible con los tipos de trabajo de intérprete de comandos de Python.

**`--extra-jars`**  
Amazon S3 lleva a archivos adicionales que AWS Glue copia al controlador y a los ejecutores. AWS Glue también añade estos archivos a la ruta de clases de Java antes de ejecutar el script. Varios valores deben ser rutas completas separadas por una coma (`,`). No es necesario que la extensión sea `.jar`

**`--extra-py-files`**  
Las rutas de Amazon S3 a módulos de Python adicionales que AWS Glule agrega a la ruta de Python en el nodo del controlador antes de ejecutar el script. Varios valores deben ser rutas completas separadas por una coma (`,`). Solo se admiten archivos individuales, no una ruta de directorio.

**`--job-bookmark-option`**  
Controla el comportamiento de un marcador de trabajo. Se pueden establecer los siguientes valores de opciones.    
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
Por ejemplo, para habilitar un marcador de trabajo, transfiera el argumento siguiente.  

```
'--job-bookmark-option': 'job-bookmark-enable'
```

**`--job-language`**  
El lenguaje de programación del script. Este valor debe ser `scala` o `python`. Si no está presente este parámetro, el valor predeterminado es `python`.

**`--python-modules-installer-option`**  
Una cadena de texto simple que define las opciones que se van a pasar a `pip3` al instalar módulos con [--additional-python-modules](#additional-python-modules). Proporcione opciones como lo haría en la línea de comandos, separadas por espacios y prefijadas por guiones. Para obtener más información acerca del uso de una VPC, consulte [Instalación de módulos adicionales de Python en AWS Glue 2.0 (o posterior) con pip](aws-glue-programming-python-libraries.md#addl-python-modules-support).  
Esta opción no es compatible con los trabajos de AWS Glue cuando se utiliza Python 3.9.

**`--scriptLocation`**  
La ubicación de Amazon Simple Storage Service (Amazon S3) donde se encuentra su script de ETL (en formato `s3://path/to/my/script.py`). Este parámetro invalida una ubicación del script establecida en el objeto `JobCommand`.

**`--spark-event-logs-path`**  
Especifica una ruta de Amazon S3. Al utilizar la función de monitoreo de la interfaz de usuario de Spark, AWS Glue vacía los registros de eventos de Spark a esta ruta de Amazon S3 cada 30 segundos, en un bucket que se puede usar como directorio temporal para almacenar eventos de la interfaz de usuario de Spark.

**`--TempDir`**  
Especifica una ruta de Amazon S3 a un bucket que se puede utilizar como directorio temporal para el trabajo.  
Por ejemplo, para establecer un directorio temporal, transfiera el argumento siguiente.  

```
'--TempDir': '{{s3-path-to-directory}}'
```
AWS Glue crea un bucket temporal para los trabajos si aún no existe un bucket en la región. Este bucket podría permitir el acceso público. Puede modificar el bucket en Amazon S3 para establecer el bloqueo del acceso público o eliminar el bucket más tarde, después de que se hayan completado todos los trabajos de esa región.

**`--use-postgres-driver`**  
Al establecer este valor en `true`, se prioriza el controlador JDBC de Postgre en la ruta de clases para evitar un conflicto con el controlador JDBC de Amazon Redshift. La opción solo está disponible en la versión 2.0 de AWS Glue.

**`--user-jars-first`**  
Al establecer este valor en `true`, se priorizan los archivos JAR adicionales del cliente en el classpath. Esta opción solo se encuentra disponible en AWS Glue versión 2.0 o posterior.

**`--conf`**  
Controla los parámetros de configuración de Spark. Es para casos de uso avanzados.

**`--encryption-type`**  
Parámetro heredado. El comportamiento correspondiente debe configurarse mediante configuraciones de seguridad. Para obtener más información sobre las configuraciones de seguridad, consulte [Cifrado de datos escritos por AWS Glue](encryption-security-configuration.md).

AWS Glue usa los siguientes argumentos a nivel interno y el usuario nunca debe usarlos:
+ `--debug`: interno de AWS Glue. No lo establezca.
+ `--mode`: interno de AWS Glue. No lo establezca.
+ `--JOB_NAME`: interno de AWS Glue. No lo establezca.
+ `--endpoint`: interno de AWS Glue. No lo establezca.



## 
<a name="w2aac37c11b8c17"></a>

 AWS Glue admite el inicio de un entorno con el módulo `site` de Python que utiliza `sitecustomize` para realizar personalizaciones específicas del sitio. Se recomienda iniciar sus propias funciones de inicialización únicamente para casos de uso avanzados y, si se hace todo lo posible, se admite en la versión 4.0 de AWS Glue. 

 El prefijo de la variable de entorno, `GLUE_CUSTOMER`, está reservado para el uso de los clientes. 