可以设置 Spark 配置属性 (Spark confs) 来自定义计算环境中的设置。
Databricks 一般不建议配置大部分 Spark 属性。 尤其是在从开源 Apache Spark 迁移时或者升级 Databricks Runtime 版本时,旧的 Spark 配置可能会替代优化工作负载的新默认行为。
对于 Spark 属性控制的许多行为,Azure Databricks 还提供了在表级别启用行为或将自定义行为配置为写入操作的一部分的选项。 例如,架构演变以前由 Spark 属性控制,但现已涵盖在 SQL、Python 和 Scala 中。 请参阅“
合并的架构演变语法
”。
可以为笔记本和作业设置 Spark 属性。 配置的范围取决于配置的设置方式。
配置的属性:
Databricks SQL 允许管理员在工作区设置菜单中为数据访问配置 Spark 属性。 请参阅
启用数据访问配置
除了数据访问配置之外,Databricks SQL 仅允许少量 Spark confs,为简单起见,这些配置已别名化为较短名称。 请参阅
配置参数
。
对于大多数受支持的 SQL 配置,可以替代当前会话中的全局行为。 以下示例关闭 ANSI 模式:
SET ANSI_MODE = false
增量实时表允许你为管道、为针对管道配置的一个计算资源或者为单个流、具体化视图或流式处理表配置 Spark 属性。
可以使用 UI 或 JSON 设置管道和计算 Spark 属性。 请参阅配置增量实时表管道。
在 DLT 修饰器函数中使用 spark_conf
选项来配置流、视图或表的 Spark 属性。 请参阅 Python 增量实时表属性。
无服务器计算不支持为笔记本或作业设置大部分 Spark 属性。 下面是可配置的属性:
spark.databricks.execution.timeout
Spark Connect 查询的执行超时(以秒为单位)。 默认值仅适用于在无服务器计算上运行的笔记本。 对于在无服务器计算和共享群集上运行的作业,除非设置了此属性,否则不会超时。
spark.sql.legacy.timeParserPolicy
EXCEPTION
时间解析器策略。
spark.sql.session.timeZone
Etc/UTC
会话本地时区的 ID,格式可以是基于区域的时区 ID 或时区偏移量。
spark.sql.shuffle.partitions
用于联接或聚合时进行数据重排的默认分区数。
spark.sql.ansi.enabled
如果为 true,Spark SQL 使用符合 ANSI 的方言,而不是符合 Hive 的方言。