

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation du format Ion dans AWS Glue
<a name="aws-glue-programming-etl-format-ion-home"></a>

AWS Glue récupère les données des sources et écrit les données sur des cibles stockées et transportées dans différents formats de données. Si vos données sont stockées ou transportées au format de données Ion, ce document présente les fonctionnalités disponibles pour utiliser vos données dans AWS Glue.

AWS Glue supporte l'utilisation du format Ion. Ce format représente des structures de données (qui ne sont pas basées sur des lignes ou des colonnes) dans des représentations binaires et en texte brut interchangeables. Pour accéder à une présentation du format par les auteurs, consultez [Amazon Ion](https://amzn.github.io/ion-docs/). (Pour plus d'informations, consultez la [spécification Amazon Ion](https://amzn.github.io/ion-docs/spec.html).)

Vous pouvez utiliser AWS Glue pour lire les fichiers Ion depuis Amazon S3. Vous pouvez lire`bzip` `gzip` et des archives contenant des fichiers lon provenant de S3. Vous configurez le comportement de compression sur [Paramètres de connexion S3](aws-glue-programming-etl-connect-s3-home.md#aws-glue-programming-etl-connect-s3) plutôt que dans la configuration décrite sur cette page.

Le tableau suivant indique quelles opérations AWS Glue courantes prennent en charge l'option de format Ion.


| Lecture | Écrire | Lecture en streaming | Groupement des petits fichiers | Signets de tâche | 
| --- | --- | --- | --- | --- | 
| Pris en charge | Non pris en charge | Non pris en charge | Pris en charge | Non pris en charge | 

## Exemple : lecture de fichiers ou de dossiers lon de S3
<a name="aws-glue-programming-etl-format-ion-read"></a>

** Prérequis :** vous aurez besoin des chemins S3 (`s3path`) vers des fichiers ou dossiers lon que vous souhaitez lire. 

**Configuration :** dans vos options de fonction, spécifiez `format="json"`. Dans vos `connection_options`, utilisez la clé `paths` pour spécifier votre `s3path`. Vous pouvez configurer la manière dont le lecteur interagit avec S3 dans les `connection_options`. Pour plus de détails, voir Types de connexion et options pour l'ETL dans AWS Glue :[Référence des options de connexion Amazon S3](aws-glue-programming-etl-connect-s3-home.md#aws-glue-programming-etl-connect-s3). 

Le script AWS Glue ETL suivant montre le processus de lecture de fichiers ou de dossiers Ion depuis S3 :

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

Pour cet exemple, utilisez la méthode [create\$1dynamic\$1frame.from\$1options](aws-glue-api-crawler-pyspark-extensions-glue-context.md#aws-glue-api-crawler-pyspark-extensions-glue-context-create_dynamic_frame_from_options).

```
# Example: Read ION from S3

from pyspark.context import SparkContext
from awsglue.context import GlueContext

sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)

dynamicFrame = glueContext.create_dynamic_frame.from_options(
    connection_type="s3",
    connection_options={"paths": ["s3://s3path"]},
    format="ion"
)
```

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

Pour cet exemple, utilisez l'opération [getSourceWithFormat](glue-etl-scala-apis-glue-gluecontext.md#glue-etl-scala-apis-glue-gluecontext-defs-getSourceWithFormat).

```
// Example: Read ION from S3

import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.GlueContext
import org.apache.spark.SparkContext

object GlueApp {
  def main(sysArgs: Array[String]): Unit = {
    val spark: SparkContext = new SparkContext()
    val glueContext: GlueContext = new GlueContext(spark)

    val dynamicFrame = glueContext.getSourceWithFormat(
      connectionType="s3",
      format="ion",
      options=JsonOptions("""{"paths": ["s3://s3path"], "recurse": true}""")
    ).getDynamicFrame()
  }
}
```

------

## Référence de configurations lon
<a name="aws-glue-programming-etl-format-ion-reference"></a>

Il n'y a aucune valeur `format_options` pour `format="ion"`.