

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bekerja dengan konektor sumber data untuk Apache Spark
<a name="connectors-spark"></a>

Beberapa konektor sumber data Athena tersedia sebagai konektor Spark DSV2 . Nama DSV2 konektor Spark memiliki `-dsv2` akhiran (misalnya,`athena-dynamodb-dsv2`).

Berikut ini adalah DSV2 konektor yang tersedia saat ini, nama `.format()` kelas Spark mereka, dan tautan ke dokumentasi Kueri Federasi Amazon Athena yang sesuai:


| DSV2 konektor | Spark .format () nama kelas | Dokumentasi | 
| --- | --- | --- | 
| 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 metrik](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) | 

Untuk mengunduh `.jar` file untuk DSV2 konektor, kunjungi DSV2 GitHub halaman [Federasi Kueri Amazon Athena](https://github.com/awslabs/aws-athena-query-federation-dsv2) dan lihat bagian **Rilis, **Rilis *<version>*****, **Aset**.

## Tentukan toples ke Spark
<a name="connectors-spark-specifying-the-jar-to-spark"></a>

Untuk menggunakan DSV2 konektor Athena dengan Spark, Anda mengirimkan `.jar` file untuk konektor ke lingkungan Spark yang Anda gunakan. Bagian berikut menjelaskan kasus-kasus tertentu.

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

Untuk informasi tentang menambahkan `.jar` file kustom dan konfigurasi kustom ke Amazon Athena untuk Apache Spark, lihat. [Gunakan properti Spark untuk menentukan konfigurasi kustom](notebooks-spark-custom-jar-cfg.md)

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

Untuk meneruskan `.jar` file konektor ke Spark, gunakan `spark-submit` perintah dan tentukan `.jar` file dalam `--jars` opsi, seperti pada contoh berikut:

```
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>

Untuk menjalankan `spark-submit` perintah dengan `--jars` parameter di Amazon EMR, Anda harus menambahkan langkah ke cluster Amazon EMR Spark Anda. Untuk detail tentang cara menggunakan `spark-submit` di Amazon EMR, lihat [Menambahkan langkah Spark](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-submit-step.html) di Panduan Rilis Amazon *EMR*.

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

Untuk AWS Glue ETL, Anda dapat meneruskan URL GitHub .com `.jar` file ke `--extra-jars` argumen `aws glue start-job-run` perintah. AWS Glue Dokumentasi menjelaskan `--extra-jars` parameter sebagai mengambil jalur Amazon S3, tetapi parameter juga dapat mengambil URL HTTPS. Untuk informasi selengkapnya, lihat [Referensi parameter Job](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html#w5aac32c13c11) di *Panduan AWS Glue Pengembang*.

## Kueri konektor di Spark
<a name="connectors-spark-querying-the-connector"></a>

Untuk mengirimkan yang setara dengan kueri federasi Athena yang ada di Apache Spark, gunakan fungsinya. `spark.sql()` Misalnya, Anda memiliki kueri Athena berikut yang ingin Anda gunakan pada Apache Spark.

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

Untuk melakukan kueri yang sama di Spark menggunakan konektor Amazon Athena DSV2 DynamoDB, gunakan kode berikut:

```
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 
''')
```

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

 DSV2 Versi konektor sumber data Athena menggunakan parameter yang sama dengan konektor sumber data Athena yang sesuai. Untuk informasi parameter, lihat dokumentasi untuk konektor sumber data Athena yang sesuai.

Dalam PySpark kode Anda, gunakan sintaks berikut untuk mengonfigurasi parameter Anda.

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

Misalnya, kode berikut menetapkan parameter konektor DynamoDB Amazon Athena ke. `disable_projection_and_casing` `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())
```