本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Apache 星火的資料來源連接器
某些 Athena 資料來源連接器可作為 Spark DSV2 連接器使用。Spark DSV2 連接器名稱具有-dsv2
字尾 (例如,athena-dynamodb-dsv2
)。
以下是目前可用的DSV2連接器、其 Spark .format()
類別名稱,以及對應的 Amazon Athena 聯合查詢文件的連結:
DSV2連接器 | Spark .format() 類別名稱 | 文件 |
---|---|---|
athena-cloudwatch-dsv2 | com.amazonaws.athena.connectors.dsv2.cloudwatch.CloudwatchTableProvider |
CloudWatch |
athena-cloudwatch-metrics-dsv2 | com.amazonaws.athena.connectors.dsv2.cloudwatch.metrics.CloudwatchMetricsTableProvider |
CloudWatch 度量 |
athena-aws-cmdb-dsv2 | com.amazonaws.athena.connectors.dsv2.aws.cmdb.AwsCmdbTableProvider |
CMDB |
athena-dynamodb-dsv2 | com.amazonaws.athena.connectors.dsv2.dynamodb.DDBTableProvider |
DynamoDB |
若要下載DSV2連接器的.jar
檔案,請瀏覽 Amazon Athena 查詢聯盟DSV2<version>
,資產部分。
指定罐子火花
若要搭配 Spark 使用 Athena DSV2 連接器,請將連接器的.jar
檔案提交至您正在使用的 Spark 環境。下列各節說明了特定情況。
Athena for Spark
如需有關新增自訂 .jar
檔案和自訂組態至 Amazon Athena for Apache Spark 的資訊,請參閱 使用星火屬性來指定自定義配置。
General Spark
若要將連接器 .jar
檔案傳遞給 Spark,請使用 spark-submit
命令並在 --jars
選項中指定 .jar
檔案,如下列範例所示:
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 星火
為了在 Amazon 上運行帶有--jars
參數的spark-submit
命令EMR,您必須向 Amazon EMR Spark 集群添加一個步驟。有關如何在 Amazon spark-submit
上使用的詳細信息EMR,請參閱 Amazon EMR 發布指南中的添加 Spark 步驟。
AWS Glue ETL火花
對於 AWS Glue ETL,您可以URL將.jar
檔案的 GitHub .com 傳遞給aws glue start-job-run
命令的--extra-jars
引數。該 AWS Glue 文件將--extra-jars
參數描述為採用 Amazon S3 路徑,但參數也可以採用 HTTPSURL. 如需詳細資訊,請參閱《AWS Glue 開發人員指南》中的任務參數參考。
查詢星火上的連接器
若要在 Apache Spark 上提交您現有的 Athena 聯合查詢的等式,請使用 spark.sql()
函數。例如,假設您想要在 Apache Spark 上使用如下所示的 Athena 查詢。
SELECT somecola, somecolb, somecolc FROM ddb_datasource.some_schema_or_glue_database.some_ddb_or_glue_table WHERE somecola > 1
若要使用 Amazon Athena DynamoDB DSV2 連接器在 Spark 上執行相同的查詢,請使用下列程式碼:
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 ''')
指定參數
Athena 資料來源連接器的DSV2版本使用與對應的 Athena 資料來源連接器相同的參數。如需參數資訊,請參閱對應 Athena 資料來源連接器的文件。
在您的 PySpark 程式碼中,使用下列語法來設定參數。
spark.read.option("athena.connectors.conf.
parameter
", "value
")
例如,下列程式碼會將 Amazon Athena DynamoDB 連接器 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())