在 Azure Databricks 上設定 Spark 組態屬性
您可以設定 Spark 組態屬性來自訂計算環境中的設定。
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 管線。
使用 DLT 裝飾函式中的 spark_conf
選項來設定流程、檢視或數據表的 Spark 屬性。 請參閱 Python Delta Live Tables 屬性。
設定無伺服器筆記本和作業的Spark屬性
無服務計算不支援為筆記本或作業設定大部分的Spark屬性。 以下是您可以設定的屬性:
財產 | 預設 | 描述 |
---|---|---|
spark.databricks.execution.timeout |
9000 |
Spark Connect 查詢的執行逾時,以秒為單位。 預設值僅適用於在無伺服器計算上執行的筆記本。 針對在無伺服器計算和共用叢集上執行的作業,除非設定此屬性,否則不會有逾時。 |
spark.sql.legacy.timeParserPolicy |
EXCEPTION |
時間剖析器原則。 |
spark.sql.session.timeZone |
Etc/UTC |
會話本地時區的標識碼,格式可以是基於區域的時區標識碼或是時區偏移。 |
spark.sql.shuffle.partitions |
auto |
用於進行聯結或聚合時隨機處理數據的預設分割區數目。 |
spark.sql.ansi.enabled |
true |
如果值為 true,Spark SQL 將使用符合 ANSI 標準的語法,而不是符合 Hive 規範。 |