如何判断Databricks Apache Spark功能是否启用及SQL Notebook兼容性
关于Databricks SQL优化的两个问题解答
1. 如何判断某一功能/特性是否已启用?
针对Spark SQL相关的优化特性,可通过以下几种方式确认状态:
- 在代码型Notebook(Python/Scala)中:使用
spark.conf.get("对应的配置参数名")命令,例如查询CBO状态可执行spark.conf.get("spark.sql.cbo.enabled"),返回结果为true或false(或对应配置值)。 - 在Databricks SQL Notebook中:执行SQL命令
SET 配置参数名;,比如SET spark.sql.cbo.enabled;,会直接返回该参数的当前生效值。 - 通过集群/仓库配置页面:进入Databricks集群或SQL Warehouse的详情页,在「Spark配置」标签下查看所有配置项的当前设置值。
2. 这些功能/特性能否在Databricks SQL Notebook中使用?
大部分Spark SQL优化特性都可以在Databricks SQL Notebook中使用,但设置方式与Python Notebook不同:
- 会话级配置:不能使用Python的
spark.conf.set语法,而是通过SQL命令SET 配置参数名 = 对应值;来设置,例如开启CBO可执行SET spark.sql.cbo.enabled = true;,该配置仅在当前Notebook会话内生效。 - 全局配置:如果需要让配置对所有SQL查询生效,可在Databricks工作区的SQL Warehouses配置页面,或对应集群的Spark配置中添加相关参数。
- 特性生效:只要配置正确开启,像CBO这类优化特性会自动作用于SQL Notebook中执行的查询,无需额外操作。
内容的提问来源于stack exchange,提问作者Patterson
相关产品推荐
相关产品推荐

