Azure Databricks で Spark 構成プロパティを設定する
Spark 構成プロパティ (Spark confs) を設定して、コンピューティング環境の設定をカスタマイズできます。
通常、Databricks では、ほとんどの Spark プロパティを構成することをお勧めします。 特に、オープンソースの Apache Spark から移行する場合、または Databricks Runtime のバージョンをアップグレードする場合、従来の Spark 構成が、ワークロードを最適化する新しい既定の動作をオーバーライドする可能性があります。
Azure Databricks には、Spark プロパティによって制御される多くの動作に対して、テーブル レベルで動作を有効にするか、書き込み操作の一部としてカスタム動作を構成するオプションも用意されています。 たとえば、以前スキーマの進化は 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")
Scala
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 を使用して設定できます。 「 デルタ ライブ テーブル パイプラインを構成するを参照してください。
DLT デコレーター関数の spark_conf
オプションを使用して、フロー、ビュー、またはテーブルの Spark プロパティを構成します。 「Python Delta Live Tables のプロパティ」を参照してください。
サーバーレス ノートブックとジョブの Spark プロパティを構成する
サーバーレス コンピューティングでは、ノートブックまたはジョブのほとんどの 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 準拠の方言を使用します。 |