使用 Spark 属性指定自定义配置
在 Amazon Athena for Apache Spark 中创建或编辑会话时,可以使用 Spark 属性.jar 文件、包或其他自定义配置。要指定 Spark 属性,可使用 Athena 控制台、Amazon CLI 或 Athena API。
使用 Athena 控制台指定 Spark 操作
在 Athena 控制台中,您可以在创建笔记本或编辑当前会话时指定 Spark 属性。
在创建笔记本或编辑会话详细信息对话框中添加属性
-
展开 Spark 属性。
-
要添加属性,使用在表中编辑或在 JSON 中编辑选项。
-
对于在表中编辑选项,选择添加属性添加属性,或者选择移除移除属性。使用键和值框输入属性名称及其值。
-
要添加自定义
.jar文件,使用spark.jars属性。 -
要指定包文件,使用
spark.jars.packages属性。
-
-
要直接输入和编辑配置,选择在 JSON 中编辑选项。在 JSON 文本编辑器中,您可以执行以下任务:
-
要将 JSON 文本复制到剪贴板,选择复制。
-
要从 JSON 编辑器中移除所有文本,选择清除。
-
要配置换行或为 JSON 编辑器选择颜色主题,选择设置(齿轮)图标。
-
-
备注
使用 Amazon CLI 或 Athena API 提供自定义配置
要使用 Amazon CLI 或 Athena API 提供会话配置,使用 StartSession API 操作或 start-sessionStartSession 请求中,使用 EngineConfiguration 对象的 SparkProperties 字段以 JSON 格式传递您的配置信息。这将启动具有您指定的配置的会话。
要从 Amazon CLI 中指定自定义 Spark 属性,请在启动交互式会话时使用 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 操作在工作组级别指定配置默认值。在工作组中定义的配置默认值适用于为该工作组启动的所有会话。
要从 Amazon 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" } } ] } }'
要从 Amazon 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" } } ] } }'