Spark 構成プロパティ (Spark confs) を設定して、コンピューティング環境の設定をカスタマイズできます。
通常、Databricks では、Spark のほとんどのプロパティを構成することをお勧めします。 特に、オープンソースの Apache Spark から移行する場合、または Databricks Runtime のバージョンをアップグレードする場合、従来の 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")
スカラ (プログラミング言語)
spark.conf.set("spark.sql.ansi.enabled", "true")
Databricks SQL で Spark プロパティを構成する
Databricks SQL を使用すると、管理者はワークスペース設定メニューでデータ アクセス用の Spark プロパティを構成できます。 データ アクセスの構成を参照してください
Databricks SQL では、データ アクセス構成以外の一部の Spark conf のみが許可されます。これらは、簡略にするために短い名前のエイリアスが付いています。 「構成パラメーターを設定する」を参照してください。
サポートされているほとんどの SQL 構成では、現在のセッションのグローバル動作をオーバーライドできます。 次の例では、ANSI モードをオフにします。
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 構成プロパティは、Azure Databricksではサポートされていません。 サポートされていない Spark プロパティは、Azure Databricksによって無視されるか、Azure Databricks機能と同時に使用すると競合やエラーが発生する可能性があります。 ワークロードをAzure Databricksに移行する場合は、サポートされていないプロパティを推奨される代替手段に置き換えます。
| サポートされていない Spark プロパティ | 適用対象 | Databricks の代替手段 |
|---|---|---|
spark.dynamicAllocation.enabledspark.dynamicAllocation.initialExecutorsspark.dynamicAllocation.minExecutorsspark.dynamicAllocation.maxExecutorsspark.dynamicAllocation.executorIdleTimeout |
クラシック コンピューティング | 代わりにAzure Databricks自動スケールを構成します。これは、プラットフォーム レベルで Executor のライフサイクルを管理します。 「自動スケールの有効化」を参照してください。 |
spark.masterspark.driver.hostspark.driver.port |
サーバーレス コンピューティングと Lakeflow Spark 宣言パイプライン | Azure Databricks サーバーレス インフラストラクチャは、これらの内部接続プロパティを自動的に管理します。 ユーザーが設定することはできません。 サーバーレス コンピューティングまたは Lakeflow Spark 宣言パイプラインに設定すると、エラーが発生します。 |
spark.jars |
サーバーレス コンピューティングと Lakeflow Spark 宣言パイプライン | Azure Databricksでは、Spark 構成を使用したサーバーレス コンピューティングまたは Lakeflow Spark 宣言パイプライン パイプラインへの JAR のアタッチはサポートされていませんが、サーバーレス JAR タスクを実行できます。 ジョブ・タスクの環境の構成を参照してください。 |
spark.databricks.runtimeoptions.* |
クラシック コンピューティング | 代わりに、クラスター構成で runtime_options 属性を使用してください。 ランタイム オプションは、どのクラスターの種類でも Spark 構成として設定できません。 Spark 構成を使用してこれらを設定しようとすると、エラーが発生します。 |
Spark 構成の現在の設定を取得する
Spark 構成の現在の設定を確認するには、次の構文を使用します。
spark.conf.get("configuration_name")