다음을 통해 공유

在 Azure Databricks 上设置 Spark 配置属性

为了自定义计算环境中的设置,您可以设置 Spark 配置属性。

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

为 Lakeflow Spark 声明性管道配置 Spark 属性

Lakeflow Spark 声明性管道允许你为管道、为管道配置的一个计算资源或单个流、具体化视图或流式处理表配置 Spark 属性。

可以使用 UI 或 JSON 设置管道和计算 Spark 属性。 请参阅 “配置管道”。

在 Lakeflow Spark 声明性管道修饰器函数中使用 spark_conf 选项来为流、视图或表配置 Spark 属性。 请参阅 Lakeflow Spark 声明性管道 Python 语言参考

为无服务器笔记本和作业配置 Spark 属性

无服务器计算不支持为笔记本或作业设置大多数 Spark 属性。 下面是可配置的属性:

资产 违约 DESCRIPTION
spark.databricks.execution.timeout 9000 (仅适用于笔记本) Spark Connect 查询的执行超时(以秒为单位)。 默认值仅适用于笔记本查询。 对于在无服务器计算上运行的作业(和在经典标准计算上运行的作业),除非设置了此属性,否则不会超时。
spark.sql.legacy.timeParserPolicy CORRECTED 时间解析器策略。
spark.sql.session.timeZone Etc/UTC 会话本地时区的 ID,格式可以是基于区域的时区 ID 或时区偏移量。
spark.sql.shuffle.partitions auto 用于联接或聚合时进行数据重排的默认分区数。
spark.sql.ansi.enabled true 如果为 true,Spark SQL 使用符合 ANSI 的方言,而不是符合 Hive 的方言。
spark.sql.files.maxPartitionBytes 134217728 (128 MB) 读取文件时要打包到单个分区的最大字节数。

获取 Spark 配置的当前设置

使用以下语法查看 Spark 配置的当前设置:

spark.conf.get("configuration_name")