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

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

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

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

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

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

構成されたプロパティ:

適用対象:

コンピュート設定の使用

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

ノートブック内

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

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

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

SET spark.sql.ansi.enabled = true
spark.conf.set("spark.sql.ansi.enabled", "true")
spark.conf.set("spark.sql.ansi.enabled", "true")

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

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

データ アクセス構成以外では、Databricks SQL では、簡潔にするために短い名前にエイリアスされた少数の Spark conf のみが許可されます。 「構成」を参照してください。

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

SET ANSI_MODE = false

Delta Live Tables パイプラインの Spark プロパティを構成する

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

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

DLT デコレータ関数のspark_confオプションを使用して、フロー、ビュー、またはテーブルの 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です)