可以设置 Spark 配置属性 (Spark confs) 来自定义计算环境中的设置。
Databricks 一般不建议配置大部分 Spark 属性。 尤其是在从开源 Apache Spark 迁移时或者升级 Databricks Runtime 版本时,旧的 Spark 配置可能会替代优化工作负载的新默认行为。
对于 Spark 属性控制的许多行为,Azure Databricks 还提供了在表级别启用行为或将自定义行为配置为写入操作的一部分的选项。 例如,架构演变以前由 Spark 属性控制,但现已涵盖在 SQL、Python 和 Scala 中。 请参阅“合并的架构演变语法”。
为笔记本和作业配置 Spark 属性
可以为笔记本和作业设置 Spark 属性。 配置的范围取决于配置的设置方式。
配置的属性: | 适用于: |
---|---|
使用计算配置 | 所有笔记本和作业都使用计算资源来运行。 |
在笔记本中 | 仅限当前笔记本的 SparkSession。 |
有关在计算级别配置 Spark 属性的说明,请参阅 Spark 配置。
若要在笔记本中设置 Spark 属性,请使用以下语法:
SQL
SET spark.sql.ansi.enabled = true
Python
spark.conf.set("spark.sql.ansi.enabled", "true")
Scala
spark.conf.set("spark.sql.ansi.enabled", "true")
在 Databricks SQL 中配置 Spark 属性
Databricks SQL 允许管理员在工作区设置菜单中为数据访问配置 Spark 属性。 请参阅启用数据访问配置
除了数据访问配置之外,Databricks SQL 仅允许少量 Spark confs,为简单起见,这些配置已别名化为较短名称。 请参阅配置参数。
对于大多数受支持的 SQL 配置,可以替代当前会话中的全局行为。 以下示例关闭 ANSI 模式:
SET ANSI_MODE = false
为增量实时表管道配置 Spark 属性
增量实时表允许你为管道、为针对管道配置的一个计算资源或者为单个流、具体化视图或流式处理表配置 Spark 属性。
可以使用 UI 或 JSON 设置管道和计算 Spark 属性。 请参阅配置增量实时表管道。
在 DLT 修饰器函数中使用 spark_conf
选项来配置流、视图或表的 Spark 属性。 请参阅 Python 增量实时表属性。
为无服务器笔记本和作业配置 Spark 属性
无服务器计算不支持为笔记本或作业设置大部分 Spark 属性。 下面是可配置的属性:
spark.sql.legacy.timeParserPolicy
(默认值为EXCEPTION
)spark.sql.session.timeZone
(默认值为Etc/UTC
)spark.sql.shuffle.partitions
(默认值为auto
)spark.sql.ansi.enabled
(默认值为true
)