メインコンテンツまでスキップ

Databricks での Spark 構成プロパティの設定

Spark構成プロパティ (Spark confs) を設定して、コンピュート環境の設定をカスタマイズできます。

Databricks では、通常、ほとんどの Spark プロパティを構成しないことを推奨しています。 特に、オープンソース Apache Spark から移行する場合や Databricks Runtime バージョンをアップグレードする場合、従来の Spark 構成は、ワークロードを最適化する新しいデフォルト動作を上書きする可能性があります。

Spark プロパティによって制御される多くの動作について、Databricks には、テーブル レベルで動作を有効にするオプション、または書き込み操作の一部としてカスタム動作を構成するオプションも用意されています。 たとえば、スキーマの進化は以前は Spark プロパティによって制御されていましたが、現在は SQL、 Python、および Scalaでカバーされています。 マージのスキーマ進化構文を参照してください。

ノートブックとジョブの Spark プロパティを構成する

ノートブックとジョブの Spark プロパティを設定できます。 構成の範囲は、設定方法によって異なります。

構成されたプロパティ:

適用対象:

コンピュート設定の使用

すべてのノートブックとジョブは、コンピュート リソースを使用して実行されます。

ノートブック内

現在のノートブックの SparkSession のみ。

コンピュート レベルで Spark プロパティを構成する手順については、「 Spark 構成」を参照してください。

ノートブックで Spark プロパティを設定するには、次の構文を使用します。

SQL
SET spark.sql.ansi.enabled = true

Databricks SQL で Spark プロパティを構成する

Databricks SQL を使用すると、管理者はワークスペース設定メニューでデータ アクセスの Spark プロパティを構成できます。 「データ アクセス構成」を参照してください

データ アクセス構成以外に、Databricks SQL では、簡単にするために短い名前にエイリアス化された Spark conf はほんの一握りしか許可されません。 「構成パラメーター」を参照してください。

サポートされているほとんどの SQL 設定では、現在のセッションでグローバル動作を上書きできます。 次の例では、ANSI モードをオフにします。

SQL
SET ANSI_MODE = false

DLT パイプラインの Spark プロパティを構成する

DLT では、パイプライン、パイプライン用に構成された 1 つのコンピュート リソース、または個々のフロー、マテリアライズドビュー、またはストリーミングテーブルの Spark プロパティを構成できます。

パイプラインとコンピュートの Spark プロパティは、UI または JSONを使用して設定できます。 DLT パイプラインの設定を参照してください。

DLT デコレーター関数の spark_conf オプションを使用して、フロー、ビュー、またはテーブルの Spark プロパティを構成します。Python DLT のプロパティを参照してください。

サーバレス ノートブック と ジョブの Spark プロパティの設定

Severless コンピュートは、ノートブックまたはジョブのほとんどの Spark プロパティの設定をサポートしていません。 構成できるプロパティは次のとおりです。

属性

デフォルト

説明

spark.databricks.execution.timeout

9000

Spark Connect クエリの実行タイムアウト (秒単位)。 デフォルト値は、サーバレス コンピュート上で動作するノートブックにのみ適用されます。 サーバレス コンピュートおよび標準アクセスモードのコンピュートで実行されているジョブの場合、このプロパティが設定されていない限り、タイムアウトは発生しません。

spark.sql.legacy.timeParserPolicy

EXCEPTION

タイムパーサーポリシー。

spark.sql.session.timeZone

Etc/UTC

セッションのローカルタイムゾーンの ID (リージョンベースのゾーン ID またはゾーンオフセットの形式)。

spark.sql.shuffle.partitions

auto

結合または集計のためにデータをシャッフルするときに使用するパーティションのデフォルト数。

spark.sql.ansi.enabled

true

true の場合、Spark SQL は Hive 準拠ではなく ANSI 準拠のダイアレクトを使用します。

Spark 構成の現在の設定を取得する

次の構文を使用して、Spark 構成の現在の設定を確認します。

Python
spark.conf.get("configuration_name")