

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 des connecteurs de source de données pour Apache Spark
<a name="connectors-spark"></a>

Certains connecteurs de source de données Athena sont disponibles sous forme de connecteurs Spark DSV2 . Les noms des DSV2 connecteurs Spark ont un `-dsv2` suffixe (par exemple,`athena-dynamodb-dsv2`).

Vous trouverez ci-dessous les DSV2 connecteurs actuellement disponibles, le nom de leur `.format()` classe Spark et les liens vers leur documentation Amazon Athena Federated Query correspondante :


| DSV2 connecteur | Nom de classe .format () Spark | Documentation | 
| --- | --- | --- | 
| athena-cloudwatch-dsv2 | com.amazonaws.athena.connectors.dsv2.cloudwatch.CloudwatchTableProvider | [CloudWatch](connectors-cloudwatch.md) | 
| athena-cloudwatch-metrics-dsv2 | com.amazonaws.athena.connectors.dsv2.cloudwatch.metrics.CloudwatchMetricsTableProvider | [CloudWatch métriques](connectors-cwmetrics.md) | 
| athena-aws-cmdb-dsv2 | com.amazonaws.athena.connectors.dsv2.aws.cmdb.AwsCmdbTableProvider | [CMDB](connectors-cmdb.md) | 
| athena-dynamodb-dsv2 | com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider | [DynamoDB](connectors-dynamodb.md) | 

Pour télécharger `.jar` des fichiers pour les DSV2 connecteurs, rendez-vous [sur la DSV2 GitHub page Amazon Athena Query Federation](https://github.com/awslabs/aws-athena-query-federation-dsv2) et consultez la section **Releases**, **Release {{<version>}}**, **Assets**.

## Spécification du fichier jar dans Spark
<a name="connectors-spark-specifying-the-jar-to-spark"></a>

Pour utiliser les DSV2 connecteurs Athena avec Spark, vous devez envoyer le `.jar` fichier du connecteur à l'environnement Spark que vous utilisez. Les sections suivantes décrivent les cas spécifiques.

### Athena pour Spark
<a name="connectors-spark-ate"></a>

Pour plus d'informations sur l'ajout de fichiers `.jar` personnalisés et d'une configuration personnalisée dans Amazon Athena pour Apache Spark, consultez. [Utilisation de propriétés Spark pour spécifier une configuration personnalisée](notebooks-spark-custom-jar-cfg.md)

### General Spark
<a name="connectors-spark-general"></a>

Pour transmettre le fichier `.jar` du connecteur à Spark, utilisez la commande `spark-submit` et spécifiez le fichier `.jar` dans l'option `--jars`, comme dans l'exemple suivant :

```
spark-submit \ 
  --deploy-mode cluster \ 
  --jars https://github.com/awslabs/aws-athena-query-federation-dsv2/releases/download/{{some_version}}/athena-dynamodb-dsv2-{{some_version}}.jar
```

### Amazon EMR Spark
<a name="connectors-spark-emr"></a>

Pour exécuter une commande `spark-submit` avec le paramètre `--jars` sur Amazon EMR, vous devez ajouter une étape à votre cluster Amazon EMR Spark. Pour en savoir plus sur l'utilisation de `spark-submit` sur Amazon EMR, consultez [Ajouter une étape Spark](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html) dans le *Guide de version d'Amazon EMR.*

### AWS Glue ETL Spark
<a name="connectors-spark-glue-etl"></a>

Pour l' AWS Glue ETL, vous pouvez transmettre l'URL GitHub .com du `.jar` fichier à l'`--extra-jars`argument de la `aws glue start-job-run` commande. La AWS Glue documentation décrit le `--extra-jars` paramètre comme empruntant un chemin Amazon S3, mais il peut également prendre une URL HTTPS. Pour plus d'informations, consultez la [référence du paramètre de tâche](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html#w5aac32c13c11) dans le *Guide du développeur AWS Glue *.

## Interrogation du connecteur sur Spark
<a name="connectors-spark-querying-the-connector"></a>

Pour envoyer l'équivalent de votre requête fédérée Athena existante sur Apache Spark, utilisez la fonction `spark.sql()`. Supposons par exemple que vous ayez la requête Athena que vous souhaitez utiliser sur Apache Spark.

```
SELECT somecola, somecolb, somecolc 
FROM ddb_datasource.some_schema_or_glue_database.some_ddb_or_glue_table 
WHERE somecola > 1
```

Pour exécuter la même requête sur Spark à l'aide du DSV2 connecteur Amazon Athena DynamoDB, utilisez le code suivant :

```
dynamoDf = (spark.read 
    .option("athena.connectors.schema", "some_schema_or_glue_database") 
    .option("athena.connectors.table", "some_ddb_or_glue_table") 
    .format("com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider") 
    .load()) 
 
dynamoDf.createOrReplaceTempView("ddb_spark_table") 
 
spark.sql(''' 
SELECT somecola, somecolb, somecolc 
FROM ddb_spark_table 
WHERE somecola > 1 
''')
```

## Specify parameters
<a name="connectors-spark-parameters"></a>

Les DSV2 versions des connecteurs de source de données Athena utilisent les mêmes paramètres que les connecteurs de source de données Athena correspondants. Pour obtenir des informations sur les paramètres, reportez-vous à la documentation du connecteur de source de données Athena correspondant.

Dans votre PySpark code, utilisez la syntaxe suivante pour configurer vos paramètres.

```
spark.read.option("athena.connectors.conf.{{parameter}}", "{{value}}")
```

Par exemple, le code suivant définit le paramètre `disable_projection_and_casing` du connecteur Amazon Athena DynamoDB sur `always`.

```
dynamoDf = (spark.read 
    .option("athena.connectors.schema", "some_schema_or_glue_database") 
    .option("athena.connectors.table", "some_ddb_or_glue_table") 
    .option("athena.connectors.conf.disable_projection_and_casing", "always") 
    .format("com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider") 
    .load())
```