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

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

Lakeflow Spark宣言型パイプラインのSparkプロパティを構成する

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

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

Lakeflow Spark宣言型パイプライン デコレーター関数のspark_confオプションを使用して、フロー、ビュー、またはテーブルのSparkプロパティを構成します。 Lakeflow Spark宣言型パイプラインPython言語リファレンス」を参照してください。

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

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

属性

デフォルト

説明

spark.databricks.execution.timeout

9000 (ノートブックにのみ適用されます)

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

spark.sql.legacy.timeParserPolicy

CORRECTED

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

spark.sql.session.timeZone

Etc/UTC

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

spark.sql.shuffle.partitions

auto

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

spark.sql.ansi.enabled

true

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

spark.sql.files.maxPartitionBytes

134217728 (128 MB)

ファイルを読み取るときに 1 つのパーティションにパックする最大バイト数。

サポートされていない Spark プロパティ

以下の Spark 構成プロパティは Databricks ではサポートされていません。サポートされていない Spark プロパティは、Databricks によって無視されるか、Databricks の機能と同時に使用されると競合や障害を引き起こす可能性があります。ワークロードをDatabricksに移行する場合は、サポートされていないプロパティを推奨される代替プロパティに置き換えてください。

サポートされていない Spark プロパティ

適用対象

Databricksの代替品

spark.dynamicAllocation.enabled

spark.dynamicAllocation.initialExecutors

spark.dynamicAllocation.minExecutors

spark.dynamicAllocation.maxExecutors

spark.dynamicAllocation.executorIdleTimeout

Classic Compute

代わりに、プラットフォーム レベルでエグゼキューターのライフサイクルを管理するDatabricksオートスケールを構成します。 「オートスケールを有効にする」を参照してください。

spark.master

spark.driver.host

spark.driver.port

サーバレスコンピュートとLakeFlow Spark宣言型パイプライン

Databricksインフラストラクチャは、これらの内部接続プロパティを自動的に管理します。 それらはユーザーが設定することはできません。サーバレスコンピュートやLakeFlow Spark宣言型パイプラインパイプラインに設定するとエラーとなります。

spark.jars

サーバレスコンピュートとLakeFlow Spark宣言型パイプライン

Databricks 、 Spark構成を使用したサーバーレス コンピュートまたはLakeFlow Spark宣言型パイプライン パイプラインへの JAR のアタッチをサポートしていませんが、サーバーレスJARタスクを実行することはできます。 ジョブタスクの環境設定を参照してください。

spark.databricks.runtimeoptions.*

Classic Compute

代わりにクラスター構成でruntime_options属性を使用してください。 Runtimeオプションは、どのクラスター タイプでもSpark構成として設定できません。 Sparkの設定を使用してこれらを設定しようとすると、エラーが発生します。

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

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

Python
spark.conf.get("configuration_name")