在 Azure Databricks 上設定 Spark 組態屬性
您可以設定 Spark 組態屬性 (Spark confs) 來自定義計算環境中的設定。
Databricks 通常會建議不設定大部分的Spark屬性。 特別是從開放原始碼 Apache Spark 移轉或升級 Databricks 運行時間版本時,舊版 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
設定 Delta Live Tables 管線的 Spark 屬性
Delta Live Tables 可讓您設定管線的 Spark 屬性、針對針對管線設定的一個計算資源,或針對個別流程、具體化檢視或串流數據表。
您可以使用 UI 或 JSON 來設定管線和計算 Spark 屬性。 請參閱 設定 Delta Live Tables 管線。
spark_conf
使用 DLT 裝飾函式中的 選項來設定流程、檢視或數據表的 Spark 屬性。 請參閱 Python Delta Live Tables 屬性。
設定無伺服器筆記本和作業的Spark屬性
無服務計算不支援為筆記本或作業設定大部分的Spark屬性。 以下是您可以設定的屬性:
spark.sql.legacy.timeParserPolicy
(預設值為EXCEPTION
)spark.sql.session.timeZone
(預設值為Etc/UTC
)spark.sql.shuffle.partitions
(預設值為auto
)spark.sql.ansi.enabled
(預設值為true
)