

# Lectura de archivos de entrada en grupos más grandes
<a name="grouping-input-files"></a>

Puede configurar propiedades de las tablas para habilitar que un trabajo de ETL de AWS Glue agrupe archivos cuando se leen desde un almacén de datos de Amazon S3. Estas propiedades permiten que cada tarea de ETL lea un grupo de archivos de entrada en una sola partición en memoria. Esto es especialmente útil cuando hay una gran cantidad de archivos pequeños en el almacén de datos de Amazon S3. Cuando configura determinadas propiedades, le indica a AWS Glue que agrupe los archivos en una partición de datos de Amazon S3 y configura el tamaño de los grupos que se leerán. También puede establecer estas opciones al leer desde un almacén de datos de Amazon S3 con el método `create_dynamic_frame.from_options`. 

Para habilitar la agrupación de archivos para una tabla, establezca los pares clave-valor y en el campo de parámetros de la estructura de tabla. Utilice la notación JSON para establecer un valor del campo de parámetros de la tabla. Para obtener más información acerca de la edición de las propiedades de una tabla, consulte [Visualización y administración de los detalles de la tabla](tables-described.md#console-tables-details). 

Puede utilizar este método para habilitar la agrupación de tablas en Data Catalog con almacenes de datos de Amazon S3. 

**groupFiles**  
Establezca **groupFiles (agrupar archivos)** en `inPartition` para habilitar la agrupación de archivos en una partición de datos de Amazon S3. AWS Glue habilita automáticamente la agrupación si hay más de 50 000 archivos de entrada, como en el ejemplo siguiente.  

```
  'groupFiles': 'inPartition'
```

**groupSize**  
Establezca **groupSize** en tamaño de destino de los grupos en bytes. La propiedad **groupSize** es opcional; si no se proporciona, AWS Glue calcula un tamaño para utilizar todos los núcleos de CPU del clúster a la vez que reduce el número total de tareas de ETL y particiones en memoria.   
Por ejemplo, la entrada siguiente establece el tamaño del grupo en 1 MB.  

```
  'groupSize': '1048576'
```
Tenga en cuenta que `groupsize` se debe establecer con el resultado de un cálculo. Por ejemplo, 1024 \$1 1024 = 1048576.

**recurse**  
Configure **recurse** en `True` para que lea de forma recursiva los archivos en todos los subdirectorios cuando especifique `paths` como una matriz de rutas. No es necesario configurar **acción recursiva** si `paths` es una matriz de claves de objeto en Amazon S3, o si el formato de entrada es parquet/orc, como en el siguiente ejemplo.  

```
  'recurse':True
```

Si va a leer de Amazon S3 directamente con el método `create_dynamic_frame.from_options`, agregue estas opciones de conexión. Por ejemplo, el siguiente código intenta agrupar los archivos en grupos de 1 MB.

```
df = glueContext.create_dynamic_frame.from_options("s3", {'paths': ["s3://s3path/"], 'recurse':True, 'groupFiles': 'inPartition', 'groupSize': '1048576'}, format="json")
```

**nota**  
`groupFiles` es compatible con los objetos DynamicFrames creados a partir de los siguientes formatos de datos: csv, ion, GrokLog, json y xml. Esta opción no es compatible con avro, parquet y orc.