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<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-jars
argomento 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())