

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 de propriétés Spark pour spécifier une configuration personnalisée
<a name="notebooks-spark-custom-jar-cfg"></a>

Lorsque vous créez ou modifiez une session dans Amazon Athena pour Apache Spark, vous pouvez utiliser les [propriétés Spark](https://spark.apache.org/docs/latest/configuration.html#spark-properties) pour spécifier des fichiers `.jar`, des packages ou une autre configuration personnalisée pour la session. Pour définir vos propriétés Spark, vous pouvez utiliser la console Athena AWS CLI, ou l'API Athena.

## Utilisation de la console Athena pour spécifier des propriétés Spark
<a name="notebooks-spark-custom-jar-cfg-console"></a>

Dans la console Athena, vous pouvez spécifier vos propriétés Spark lorsque vous [créez un bloc-notes](notebooks-spark-getting-started.md#notebooks-spark-getting-started-creating-your-own-notebook) ou [modifiez une session en cours](notebooks-spark-getting-started.md#notebooks-spark-getting-started-editing-session-details).

**Pour ajouter des propriétés dans la boîte de dialogue **Créer un bloc-notes** ou **Modifier les détails de la session****

1. Développez les **propriétés Spark**.

1. Pour ajouter vos propriétés, utilisez l'option **Modifier dans la table** ou **Modifier dans JSON**.
   + Pour l'option **Modifier dans la table**, choisissez **Ajouter une propriété** pour ajouter une propriété, ou choisissez **Supprimer** pour supprimer une propriété. Utilisez les champs **Clé** et **Valeur** pour saisir les noms des propriétés et leurs valeurs.
     + Pour ajouter un fichier `.jar` personnalisé, utilisez la propriété `spark.jars`.
     + Utilisez la propriété `spark.jars.packages` pour spécifier un fichier de package.
   + Pour saisir et modifier directement votre configuration, choisissez l'option **Modifier dans JSON**. Dans l'éditeur de texte JSON, vous pouvez effectuer les tâches suivantes :
     + Choisissez **Copier** pour copier le texte JSON dans le presse-papier.
     + Choisissez **Effacer** pour supprimer tout le texte de l'éditeur JSON.
     + Choisissez l'icône des paramètres (engrenage) pour configurer l'encapsulage des lignes ou choisissez un thème de couleur pour l'éditeur JSON.

### Remarques
<a name="notebooks-spark-custom-jar-cfg-notes"></a>
+ Vous pouvez définir des propriétés dans Athena pour Spark, ce qui revient à définir les [propriétés de Spark](https://spark.apache.org/docs/latest/configuration.html#spark-properties) directement sur un [SparkConf](https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.SparkConf.html)objet.
+ Commencez toutes les propriétés Spark par le préfixe `spark.`. Les propriétés comportant d'autres préfixes sont ignorées.
+ Les propriétés Spark ne sont pas toutes disponibles pour une configuration personnalisée sur Athena. Si vous soumettez une demande `StartSession` dont la configuration est restreinte, la session ne démarre pas.
  + Vous ne pouvez pas utiliser le préfixe `spark.athena.` car il est réservé.

## Utilisez l'API AWS CLI ou Athena pour fournir une configuration personnalisée
<a name="notebooks-spark-custom-jar-cfg-cli-or-api"></a>

Pour utiliser l'API AWS CLI ou Athena afin de configurer votre session, utilisez l'action [StartSession](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartSession.html)API ou la commande CLI [start-session](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/athena/start-session.html). Dans votre `StartSession` demande, utilisez le `SparkProperties` champ d'[EngineConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_EngineConfiguration.html)objet pour transmettre vos informations de configuration au format JSON. Cela démarre une session avec la configuration spécifiée.

Pour spécifier des propriétés Spark personnalisées à partir du AWS CLI, utilisez `engine-configuration` la configuration lorsque vous démarrez une session interactive.

```
aws athena start-session \ 
--region "REGION"
--work-group "WORKGROUP" \
--engine-configuration '{
    "Classifications": [{
      "Name": "spark-defaults",
      "Properties": {
        "spark.dynamicAllocation.minExecutors": "1",
        "spark.dynamicAllocation.initialExecutors": "2",
        "spark.dynamicAllocation.maxExecutors": "10",
        "spark.dynamicAllocation.executorIdleTimeout": "300"
      }
    }]
  }'
```

Vous pouvez également spécifier les paramètres de configuration par défaut au niveau du groupe de travail à l'aide de l'action `CreateWorkgroup` API ou de l'action `UpdateWorkgroup` API. Les paramètres de configuration par défaut définis au sein du groupe de travail s'appliquent à toutes les sessions démarrées pour ce groupe de travail.

Pour spécifier les propriétés Spark par défaut à partir de celles AWS CLI d'un groupe de travail, utilisez la `engine-configuration` configuration lors de la création d'un nouveau groupe de travail :

```
aws athena create-work-group \
  --region "REGION" \
  --name "WORKGROUP_NAME" \
  --configuration '{
    "EngineVersion": {
      "SelectedEngineVersion": "Apache Spark version 3.5"
    },
    "ExecutionRole": "EXECUTION_ROLE",
    "EngineConfiguration": {
      "Classifications": [
        {
          "Name": "spark-defaults",
          "Properties": {
            "spark.dynamicAllocation.minExecutors": "1",
            "spark.dynamicAllocation.initialExecutors": "2",
            "spark.dynamicAllocation.maxExecutors": "10",
            "spark.dynamicAllocation.executorIdleTimeout": "300"
          }
        }
      ]
    }
  }'
```

Pour modifier les propriétés Spark par défaut d'un groupe de travail, utilisez la AWS CLI `engine-configuration` configuration lors de la mise à jour d'un groupe de travail. Les modifications s'appliquent aux nouvelles sessions interactives à venir.

```
aws athena update-work-group \
  --region "REGION" \
  --work-group "WORKGROUP_NAME" \
  --configuration-updates '{
    "EngineVersion": {
      "SelectedEngineVersion": "Apache Spark version 3.5"
    },
    "ExecutionRole": "EXECUTION_ROLE",
    "EngineConfiguration": {
      "Classifications": [
        {
          "Name": "spark-defaults",
          "Properties": {
            "spark.dynamicAllocation.minExecutors": "1",
            "spark.dynamicAllocation.initialExecutors": "2",
            "spark.dynamicAllocation.maxExecutors": "12",
            "spark.dynamicAllocation.executorIdleTimeout": "300"
          }
        }
      ]
    }
  }'
```