本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Spark 屬性指定自訂組態
當您在 Amazon Athena for Apache Spark 中建立或編輯工作階段時,您可以使用 Spark 屬性.jar 檔案、套件或其他自訂組態。若要指定 Spark 屬性,您可以使用 Athena 主控台 AWS CLI、 或 Athena API。
使用 Athena 主控台指定 Spark 屬性
在 Athena 主控台中,您可以在建立筆記本或編輯目前工作階段時指定 Spark 屬性。
若要在建立記事本或編輯工作階段詳細資訊對話方塊中新增屬性
-
展開 Spark 屬性。
-
若要新增屬性,請使用在資料表中編輯或在 JSON 中編輯選項。
-
對於在資料表中編輯選項,請選擇新增屬性以新增屬性,或選擇移除以移除屬性。使用關鍵字和值方塊,以輸入屬性名稱及其值。
-
若要新增自訂
.jar檔案,請使用spark.jars屬性。 -
若要指定套件檔案,請使用
spark.jars.packages屬性。
-
-
若要直接輸入和編輯您的設定,請選擇在 JSON 中編輯選項。在 JSON 文字編輯器中,您可以執行以下任務:
-
選擇複製,以將 JSON 文字複製到剪貼簿。
-
選擇清除,以從 JSON 編輯器中移除所有文字。
-
選擇設定 (齒輪) 圖示,以設定換行或選擇 JSON 編輯器的顏色主題。
-
-
備註
使用 AWS CLI 或 Athena API 提供自訂組態
若要使用 AWS CLI 或 Athena API 來提供工作階段組態,請使用 StartSession API 動作或 start-sessionStartSession 請求中,使用 EngineConfiguration 物件的 SparkProperties 欄位,以 JSON 格式傳遞您的組態資訊。這樣,將會使用您指定的組態啟動工作階段。
若要從 指定自訂 Spark 屬性 AWS CLI,請在啟動互動式工作階段時使用 engine-configuration 組態。
aws athena start-session \ --region "REGION" --work-group "WORKGROUP" \ --engine-configuration '{ "Classifications": [{ "Name": "spark-defaults", "Properties": { "spark.dynamicAllocation.minExecutors": "1", "spark.dynamicAllocation.initialExecutors": "2", "spark.dynamicAllocation.maxExecutors": "10", "spark.dynamicAllocation.executorIdleTimeout": "300" } }] }'
您也可以使用 CreateWorkgroup API 動作或 UpdateWorkgroup API 動作,在工作群組層級指定組態預設值。在工作群組中定義的組態預設值會套用至該工作群組啟動的所有工作階段。
若要從工作群組 AWS CLI 的 指定預設 Spark 屬性,請在建立新的工作群組時使用 engine-configuration組態:
aws athena create-work-group \ --region "REGION" \ --name "WORKGROUP_NAME" \ --configuration '{ "EngineVersion": { "SelectedEngineVersion": "Apache Spark version 3.5" }, "ExecutionRole": "EXECUTION_ROLE", "EngineConfiguration": { "Classifications": [ { "Name": "spark-defaults", "Properties": { "spark.dynamicAllocation.minExecutors": "1", "spark.dynamicAllocation.initialExecutors": "2", "spark.dynamicAllocation.maxExecutors": "10", "spark.dynamicAllocation.executorIdleTimeout": "300" } } ] } }'
若要修改工作群組 AWS CLI 中的預設 Spark 屬性,請在更新工作群組時使用 engine-configuration組態。這些變更會套用至未來的新互動式工作階段。
aws athena update-work-group \ --region "REGION" \ --work-group "WORKGROUP_NAME" \ --configuration-updates '{ "EngineVersion": { "SelectedEngineVersion": "Apache Spark version 3.5" }, "ExecutionRole": "EXECUTION_ROLE", "EngineConfiguration": { "Classifications": [ { "Name": "spark-defaults", "Properties": { "spark.dynamicAllocation.minExecutors": "1", "spark.dynamicAllocation.initialExecutors": "2", "spark.dynamicAllocation.maxExecutors": "12", "spark.dynamicAllocation.executorIdleTimeout": "300" } } ] } }'