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

Databricks Connectにおけるコンピュートの設定

注記

この記事では、Databricks Runtime13.3LTS以降のDatabricks Connectについて説明します。

このページでは、 Databricks Connect と Databricks クラスタ または サーバレス コンピュート間の接続を設定するさまざまな方法について説明します。

Databricks Connectを使用すると、Visual Studio Code、PyCharm 、RStudio Desktop、IntelliJ IDEAのような人気のIDE、ノートブック サーバー、その他のカスタム アプリケーションなどの一般的な をDatabricks クラスターに接続できます。Databricks Connectを参照してください。

セットアップ​

始める前に、次のものが必要です。

クラスターへの接続を構成する​

クラスターへの接続を構成する方法は複数あります。Databricks Connect は、次の順序で構成プロパティを検索し、最初に見つかった構成を使用します。高度な構成情報については、「 Databricks Connect の高度な使用法」を参照してください。

  1. DatabricksSession クラスの remote() メソッド。
  2. Databricks 構成プロファイル
  3. DATABRICKS_CONFIG_PROFILE 環境変数
  4. 各構成プロパティの環境変数
  5. デフォルトという名前の Databricks 構成プロファイル

DatabricksSession クラスの remote() メソッド​

このオプションは、 Databricksの個人アクセス権 (レガシー) による認証のみに適用され、ワークスペース インスタンス名、 Databricks個人アクセス権、およびクラスターの ID を指定します。

DatabricksSession クラスは、いくつかの方法で初期化できます。

  • DatabricksSession.builder.remote()で host、 token、 cluster_id の各フィールドを設定します。
  • Databricks SDK の Config クラスを使用します。
  • Databricks 構成プロファイルを cluster_id フィールドと共に指定します。

Databricks では、これらの接続プロパティをコードで指定する代わりに、このセクション全体で説明するように、環境変数または構成ファイルを使用してプロパティを構成することをお勧めします。 次のコード例では、提案された retrieve_* 関数の実装を提供して、ユーザーまたは他の構成ストア ( AWS Systems Manager Parameter Store など) から必要なプロパティを取得することを前提としています。

これらの各アプローチのコードは次のとおりです。

Python
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
Python
# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
Python
# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

Databricks 構成プロファイル​

このオプションでは、フィールドcluster_id と、使用する Databricks認証タイプ に必要なその他のフィールドを含む Databricks 構成プロファイル を作成または特定します。

各認証タイプに必要な設定プロファイルフィールドは次のとおりです。

次に、構成クラスを使用して、この構成プロファイルの名前を設定します。

注記

auth login コマンドの --configure-cluster オプションを使用して、新規または既存の設定プロファイルに cluster_id フィールドを自動的に追加できます。詳細については、コマンド databricks auth login -h.

cluster_id はいくつかの方法で指定できます。

  • 構成プロファイルに cluster_id フィールドを含め、構成プロファイルの名前を指定するだけです。
  • cluster_id フィールドと共に設定プロファイル名を指定してください。

クラスターの ID を使用して DATABRICKS_CLUSTER_ID 環境変数をすでに設定している場合は、 cluster_idを指定する必要はありません。

これらの各アプローチのコードは次のとおりです。

Python
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
Python
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config

config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)

spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()

DATABRICKS_CONFIG_PROFILE環境変数​

このオプションでは、フィールドcluster_id と、使用する Databricks認証タイプ に必要なその他のフィールドを含む Databricks 構成プロファイル を作成または特定します。

クラスターの ID を使用して DATABRICKS_CLUSTER_ID 環境変数をすでに設定している場合は、 cluster_idを指定する必要はありません。

各認証タイプに必要な設定プロファイルフィールドは次のとおりです。

注記

auth login コマンドの--configure-clusterを使用して、新規または既存の設定プロファイルに cluster_id フィールドを自動的に追加できます。詳細については、コマンド databricks auth login -h.

DATABRICKS_CONFIG_PROFILE環境変数をこの構成プロファイルの名前に設定します。次に、 DatabricksSession クラスを初期化します。

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

各構成プロパティの環境変数​

このオプションでは、DATABRICKS_CLUSTER_ID 環境変数と、使用する Databricks 認証タイプに必要なその他の環境変数を設定します。

各認証タイプに必要な環境変数は次のとおりです。

次に、 DatabricksSession クラスを初期化します。

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

Databricks 構成プロファイル DEFAULT​

このオプションでは、フィールドcluster_id と、使用する Databricks認証タイプ に必要なその他のフィールドを含む Databricks 構成プロファイル を作成または特定します。

クラスターの ID を使用して DATABRICKS_CLUSTER_ID 環境変数をすでに設定している場合は、 cluster_idを指定する必要はありません。

各認証タイプに必要な設定プロファイルフィールドは次のとおりです。

この設定プロファイルに DEFAULTという名前を付けます。

注記

auth login コマンドの --configure-cluster オプションを使用して、cluster_id フィールドを DEFAULT 構成プロファイルに自動的に追加できます。詳細については、コマンド databricks auth login -h.

次に、 DatabricksSession クラスを初期化します。

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.getOrCreate()

サーバレス コンピュートへの接続を構成する​

Databricks Connect for PythonおよびScala 、サーバレス コンピュートへの接続をサポートします。 この機能を使用するには、serverless に接続するためのバージョン要件を満たしている必要があります。 Databricks Connect の使用要件を参照してください。

重要

この機能には次の制限があります。

Pythonの場合、ローカル環境でサーバレス コンピュートへの接続を構成できます。

  • ローカル環境変数 DATABRICKS_SERVERLESS_COMPUTE_ID を autoに設定します。 この環境変数が設定されている場合、Databricks Connect は cluster_idを無視します。

  • ローカルの Databricks 構成プロファイルで、 serverless_compute_id = autoを設定し、コードからそのプロファイルを参照します。

    [DEFAULT]
    host = https://my-workspace.cloud.databricks.com/
    serverless_compute_id = auto
    token = dapi123...

あるいは Python または Scala の場合:

Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.serverless().getOrCreate()
Python
from databricks.connect import DatabricksSession

spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()

Databricks への接続を検証する​

環境、認証情報、コンピュートへの接続がDatabricks Connectに対して正しく設定されていることを検証するには、 databricks-connect testコマンドを実行します。

Bash
databricks-connect test

このコマンドは、 Databricks ConnectバージョンがDatabricksサーバーレス コンピュート バージョンと互換性がない場合など、セットアップで非互換性を検出すると、ゼロ以外の終了コードと対応するエラー メッセージで失敗します。 Databricks Connect バージョンのサポート情報については、 「Databricks Connect バージョン」を参照してください。

Databricks Connect 14.3 以降では、 validateSession()を使用して環境を検証することもできます。

DatabricksSession.builder.validateSession(True).getOrCreate()

Databricks Connect の無効化​

Databricks Connect (および基になる Spark Connect) サービスは、任意のクラスターで無効にできます。

Databricks Connectサービスを無効にするには、クラスターで次のSpark構成を設定します。

spark.databricks.service.server.enabled false