次の方法で共有


Databricks アセット バンドルで成果物の設定を定義する

この記事では、Databricks アセット バンドルの成果物の設定をオーバーライドする方法について説明します。 Databricks アセット バンドルとは何ですかを参照してください。

Azure Databricks バンドル構成ファイルでは、最上位レベルの artifacts マッピングの成果物設定を、targets マッピングの成果物設定でオーバーライドできます。次に例を示します。

# ...
artifacts:
  <some-unique-programmatic-identifier-for-this-artifact>:
    # Artifact settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    artifacts:
      <the-matching-programmatic-identifier-for-this-artifact>:
        # Any more artifact settings to join with the settings from the
        # matching top-level artifacts mapping.

最上位レベルの artifacts マッピングと同じアーティファクトの targets マッピングの両方でアーティファクト設定が定義されている場合は、targets マッピングの設定が最上位レベルの artifacts マッピングの設定よりも優先されます。

例 1: 最上位の成果物マッピングでのみ定義された成果物の設定

これが実際にどのように機能するかを示すために、次の例では、成果物のすべての設定を定義する最上位レベルの artifacts マッピングで path が定義されています (簡潔にするために省略記号は省略記号は省略されたコンテンツを示します)。

# ...
artifacts:
  my-artifact:
    type: whl
    path: ./my_package
# ...

この例の databricks bundle validate を実行すると、結果のグラフは次のようになります。

{
  "...": "...",
  "artifacts": {
    "my-artifact": {
      "type": "whl",
      "path": "./my_package",
      "...": "..."
    }
  },
  "...": "..."
}

例 2: 複数の成果物マッピングで定義されたアーティファクト設定の競合

この例では、path は最上位レベルの artifacts マッピングと targetsartifacts マッピングの両方で定義されています。 この例では、最上位レベルの artifacts マッピングの path よりも、targetsartifacts マッピングの path が優先され、成果物の設定が定義されます (簡潔にするために省略記号は省略されたコンテンツを示します)。

# ...
artifacts:
  my-artifact:
    type: whl
    path: ./my_package

targets:
  dev:
    artifacts:
      my-artifact:
        path: ./my_other_package
    # ...

この例の databricks bundle validate を実行すると、結果のグラフは (簡潔にするために省略記号は省略されたコンテンツを示します)。

{
  "...": "...",
  "artifacts": {
    "my-artifact": {
      "type": "whl",
      "path": "./my_other_package",
      "...": "..."
    }
  },
  "...": "..."
}