Lavora con i connettori di origine dati per Apache Spark - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Lavora con i connettori di origine dati per Apache Spark

Alcuni connettori di origine dati Athena sono disponibili come connettori DSV2 Spark. I nomi dei DSV2 connettori Spark hanno un -dsv2 suffisso (ad esempio,). athena-dynamodb-dsv2

Di seguito sono riportati i DSV2 connettori attualmente disponibili, il nome .format() della classe Spark e i collegamenti alla documentazione corrispondente di Amazon Athena Federated Query:

DSV2connettore Spark .format() nome classe Documentazione
athena-cloudwatch-dsv2 com.amazonaws.athena.connectors.dsv2.cloudwatch.CloudwatchTableProvider CloudWatch
athena-cloudwatch-metrics-dsv2 com.amazonaws.athena.connectors.dsv2.cloudwatch.metrics.CloudwatchMetricsTableProvider CloudWatch metriche
athena-aws-cmdb-dsv2 com.amazonaws.athena.connectors.dsv2.aws.cmdb.AwsCmdbTableProvider CMDB
athena-dynamodb-dsv2 com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider DynamoDB

Per scaricare .jar i file per i DSV2 connettori, visita la DSV2 GitHub pagina Amazon Athena Query Federation e consulta le Release, Release <version>, Sezione Risorse.

Specificate il jar in Spark

Per utilizzare i DSV2 connettori Athena con Spark, devi inviare il .jar file relativo al connettore all'ambiente Spark che stai utilizzando. Le sezioni seguenti descrivono casi specifici.

Athena per Spark

Per informazioni sull'aggiunta di file .jar personalizzati e configurazioni personalizzate ad Amazon Athena per Apache Spark, consulta Usa le proprietà Spark per specificare una configurazione personalizzata.

General Spark

Per passare il file .jar del connettore a Spark, usa il comando spark-submit e specifica il file .jar nell'opzione --jars, come nell'esempio seguente:

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

Per eseguire un spark-submit comando con il --jars parametro su AmazonEMR, devi aggiungere un passaggio al tuo cluster Amazon EMR Spark. Per i dettagli su come utilizzarlo spark-submit su AmazonEMR, consulta il passaggio Add a Spark nella Amazon EMR Release Guide.

AWS Glue ETLSpark

Per AWS Glue ETL esempio, puoi passare il GitHub .com del .jar file URL all'--extra-jarsargomento del aws glue start-job-run comando. La AWS Glue documentazione descrive il --extra-jars parametro come se accettasse un percorso Amazon S3, ma il parametro può anche richiedere un. HTTPS URL Per ulteriori informazioni, consulta la Documentazione di riferimento dei parametri dei processi nella Guida per gli sviluppatori di AWS Glue .

Interroga il connettore su Spark

Per inviare l'equivalente della tua query esistente federata di Athena su Apache Spark, utilizza la funzione spark.sql(). Ad esempio, supponi che intendi utilizzare la seguente query Athena su Apache Spark.

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

Per eseguire la stessa query su Spark utilizzando il connettore Amazon Athena DSV2 DynamoDB, usa il codice seguente:

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

Specificare i parametri

Le DSV2 versioni dei connettori delle sorgenti dati Athena utilizzano gli stessi parametri dei connettori delle sorgenti dati Athena corrispondenti. Per informazioni sui parametri, consulta la documentazione del connettore corrispondente di origine dati Athena.

Nel PySpark codice, utilizzate la seguente sintassi per configurare i parametri.

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

Ad esempio, il codice seguente imposta il parametro disable_projection_and_casing del connettore DynamoDB di Amazon Athena su 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())