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

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

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

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

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

ノートブックとジョブの 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プロパティを構成できます。

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

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に移行する場合は、サポートされていないプロパティを推奨される代替プロパティに置き換えてください。

注記

ここに記載されているプロパティに加え、Databricks Runtime 19以降の標準アクセスモードでは、特定のSpark構成プロパティが制限されます。制限されたプロパティを設定しているクラスターの作成または編集はエラーになります。Spark構成の制限事項を参照してください。

サポートされていない 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")