Databricks Connect for Scala をインストールする
注
この記事では、Databricks Connect for Databricks Runtime 13.3 LTS 以降について説明します。
この記事では、Databricks Connect for Scala をインストールする方法について説明します。 「Databricks Connect とは」を参照してください。この記事の Python バージョンについては、「 Databricks Connect for Python のインストール」を参照してください。
要件
ターゲットの Databricks ワークスペースとクラスターは、 Databricks Connect のクラスター構成の要件を満たしている必要があります。
開発マシンにインストールされている Java 開発キット (JDK)。 Databricks では、使用する JDK インストールのバージョンを Databricks クラスターの JDK バージョンと一致させることをお勧めします。 クラスターの JDK バージョンを確認するには、クラスターの Databricks Runtime リリースノートの「システム環境」セクションを参照してください。 たとえば、
Zulu 8.70.0.23-CA-linux64
は JDK 8 に対応します。 リリースノートDatabricks Runtimeバージョンと互換性を参照してください。開発マシンにインストールされている Scala。 Databricks では、使用する Scala インストールのバージョンを Databricks クラスターの Scala バージョンと一致させることをお勧めします。 クラスターの Scala バージョンを確認するには、クラスターの Databricks Runtime リリースノートの「システム環境」セクションを参照してください。 リリースノートDatabricks Runtimeバージョンと互換性を参照してください。
開発マシン上の Scala ビルド ツール (
sbt
など)。
クライアントのセットアップ
Databricks Connect の要件を満たしたら、次の手順を実行して Databricks Connect クライアントを設定します。
手順 1: Databricks Connect クライアントへの参照を追加する
sbt
の場合はbuild.sbt
、Maven の場合はpom.xml
、Gradle の場合はbuild.gradle
など、Scala プロジェクトのビルド ファイルで、Databricks Connect クライアントに次の参照を追加します。libraryDependencies += "com.databricks" % "databricks-connect" % "14.0.0"
<dependency> <groupId>com.databricks</groupId> <artifactId>databricks-connect</artifactId> <version>14.0.0</version> </dependency>
implementation 'com.databricks.databricks-connect:14.0.0'
14.0.0
、クラスター上の Databricks Runtime バージョンと一致するバージョンの Databricks Connect ライブラリに置き換えます。 Databricks Connect ライブラリのバージョン番号は、 Maven の中央リポジトリで確認できます。
ステップ 2: 接続プロパティを構成する
このセクションでは、Databricks Connect とリモート Databricks クラスター間の接続を確立するためのプロパティを構成します。 これらのプロパティには、クラスターで Databricks Connect を認証するための設定が含まれます。
Databricks Connect for Databricks Runtime 13.3 LTS 以降の場合、Scala の場合、Databricks Connect には Databricks SDK for Java が含まれています。 この SDK は、 Databricks クライアント統合認証 標準を実装しており、認証に対する統合された一貫性のあるアーキテクチャおよびプログラムによるアプローチです。 このアプローチにより、Databricks での認証の設定と自動化がより一元化され、予測可能になります。 これにより、Databricks 認証を一度構成すると、認証構成をさらに変更することなく、その構成を複数の Databricks ツールや SDK で使用できます。
注
OAuth ユーザー対マシン (U2M) 認証の場合は、Scala コードを実行する前に Databricks CLI を使用して認証する必要があります。 「チュートリアル」を参照してください。
次の構成プロパティを収集します。
Databricks ワークスペース インスタンス名。 これは、クラスターの Server ホスト名 の値と同じです。「 Databricks コンピュート リソースの接続の詳細を取得する」を参照してください。
クラスターの ID。 クラスター ID は URL から取得できます。 「 クラスターの URL と ID」を参照してください。
サポートされている Databricks 認証の種類に必要なその他のプロパティ。 これらのプロパティについては、このセクションで説明します。
コード内で接続を構成します。 Databricks Connect は、構成プロパティが見つかるまで次の順序で検索します。 それらが見つかると、残りのオプションの検索を停止します。 各オプションの詳細は、次の表の後に表示されます。
構成プロパティー・オプション
適用対象
DatabricksSession
クラスのremote()
メソッド
Databricks personal アクセストークン認証のみ
Databricks 構成プロファイル
すべての Databricks 認証の種類
SPARK_REMOTE
環境変数
Databricks personal アクセストークン認証のみ
DATABRICKS_CONFIG_PROFILE
環境変数
すべての Databricks 認証の種類
各構成プロパティの環境変数
すべての Databricks 認証の種類
という名前の Databricks 構成プロファイル
DEFAULT
すべての Databricks 認証の種類
DatabricksSession
クラスのremote()
メソッドこのオプションは、Databricks 個人用アクセストークン認証にのみ適用され、ワークスペース インスタンス名、 Databricks 個人用アクセストークン 、およびクラスターの ID を指定します。
DatabricksSession
クラスは、次のようないくつかの方法で初期化できます。DatabricksSession.builder
のhost
、token
、clusterId
フィールドを設定します。Databricks SDK の
Config
クラスを使用します。Databricks 構成プロファイルを
clusterId
フィールドと共に指定します。
Databricks では、コードでこれらの接続プロパティを直接指定することはお勧めしません。 代わりに、Databricks では、このセクション全体で説明されているように、環境変数または構成ファイルを使用してプロパティを構成することをお勧めします。 次のコード例では、提案された
retrieve*
関数の実装を自分で提供して、ユーザーまたは AWS Systems Manager パラメーター ストアなどの他の設定ストアから必要なプロパティを取得することを前提としています。これらの各アプローチのコードは次のとおりです。
// Set the host, token, and clusterId fields in DatabricksSession.builder. // If you have already set the DATABRICKS_CLUSTER_ID environment variable with the // cluster's ID, you do not also need to set the clusterId field here. import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder() .host(retrieveWorkspaceInstanceName()) .token(retrieveToken()) .clusterId(retrieveClusterId()) .getOrCreate() // 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 clusterId field here. import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setHost(retrieveWorkspaceInstanceName()) .setToken(retrieveToken()) val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate() // Specify a Databricks configuration profile along with the clusterId 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 clusterId field here. import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate()
Databricks 構成プロファイル
このオプションでは、フィールド
cluster_id
と、使用するサポートされている Databricks 認証タイプ に必要なその他のフィールドを含む Databricks 構成プロファイル を作成または識別します。各認証タイプに必要な構成プロファイル項目は次のとおりです。
Databricks 個人用アクセストークン認証の場合:
host
とtoken
.OAuth マシン間 (M2M) 認証 (サポートされている場合):
host
、client_id
、およびclient_secret
。OAuth ユーザー対マシン (U2M) 認証 (サポートされている場合) の場合:
host
.
注
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks 管理パスワードのサポート終了を参照してください。
次に、
DatabricksConfig
クラスを使用してこの構成プロファイルの名前を設定します。注
Databricks CLI バージョン 0.200.1 以降で
auth login
コマンドの--configure-cluster
オプションを使用すると、新規または既存の構成プロファイルにcluster_id
フィールドを自動的に追加できます。 詳細については、コマンドdatabricks auth login -h
を実行してください。cluster_id
は、次のようにいくつかの方法で指定できます。構成プロファイルに
cluster_id
フィールドを含め、構成プロファイルの名前だけを指定します。構成プロファイル名と
clusterId
フィールドを指定します。
DATABRICKS_CLUSTER_ID
環境変数にクラスターの ID を既に設定している場合は、cluster_id
またはclusterId
フィールドも指定する必要はありません。これらの各アプローチのコードは次のとおりです。
// Include the cluster_id field in your configuration profile, and then // just specify the configuration profile's name: import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .getOrCreate() // Specify the configuration profile name along with the clusterId field. // In this example, retrieveClusterId() assumes some custom implementation that // you provide to get the cluster ID from the user or from some other // configuration store: import com.databricks.connect.DatabricksSession import com.databricks.sdk.core.DatabricksConfig val config = new DatabricksConfig() .setProfile("<profile-name>") val spark = DatabricksSession.builder() .sdkConfig(config) .clusterId(retrieveClusterId()) .getOrCreate()
SPARK_REMOTE
環境変数このオプション (Databricks 個人用アクセストークン認証にのみ適用される) では、
SPARK_REMOTE
環境変数を次の文字列に設定し、プレースホルダーを適切な値に置き換えます。sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>
次に、
DatabricksSession
クラスを次のように初期化します。import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
環境変数を設定するには、ご利用になっているオペレーティングシステムのドキュメントを参照してください。
DATABRICKS_CONFIG_PROFILE
環境変数このオプションでは、フィールド
cluster_id
と、使用するサポートされている Databricks 認証タイプ に必要なその他のフィールドを含む Databricks 構成プロファイル を作成または識別します。DATABRICKS_CLUSTER_ID
環境変数にクラスターの ID を既に設定している場合は、cluster_id
を指定する必要はありません。各認証タイプに必要な構成プロファイル項目は次のとおりです。
Databricks 個人用アクセストークン認証の場合:
host
とtoken
.OAuth マシン間 (M2M) 認証 (サポートされている場合):
host
、client_id
、およびclient_secret
。OAuth ユーザー対マシン (U2M) 認証 (サポートされている場合) の場合:
host
.
注
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks 管理パスワードのサポート終了を参照してください。
注
Databricks CLI バージョン 0.200.1 以降で
auth login
コマンドの--configure-cluster
オプションを使用すると、新規または既存の構成プロファイルにcluster_id
フィールドを自動的に追加できます。 詳細については、コマンドdatabricks auth login -h
を実行してください。DATABRICKS_CONFIG_PROFILE
環境変数をこの構成プロファイルの名前に設定します。次に、DatabricksSession
クラスを次のように初期化します。import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
環境変数を設定するには、ご利用になっているオペレーティングシステムのドキュメントを参照してください。
各構成プロパティの環境変数
このオプションでは、
DATABRICKS_CLUSTER_ID
環境変数と、使用するサポートされている Databricks 認証の種類 に必要なその他の環境変数を設定します。各認証の種類に必要な環境変数は次のとおりです。
Databricks 個人用アクセストークン認証の場合:
DATABRICKS_HOST
とDATABRICKS_TOKEN
.OAuthマシン間(M2M)認証の場合:
DATABRICKS_HOST
、DATABRICKS_CLIENT_ID
、およびDATABRICKS_CLIENT_SECRET
。OAuth user-to-machine (U2M) 認証の場合:
DATABRICKS_HOST
.
注
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks 管理パスワードのサポート終了を参照してください。
次に、
DatabricksSession
クラスを次のように初期化します。import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()
環境変数を設定するには、ご利用になっているオペレーティングシステムのドキュメントを参照してください。
という名前の Databricks 構成プロファイル
DEFAULT
このオプションでは、フィールド
cluster_id
と、使用するサポートされている Databricks 認証タイプ に必要なその他のフィールドを含む Databricks 構成プロファイル を作成または識別します。DATABRICKS_CLUSTER_ID
環境変数にクラスターの ID を既に設定している場合は、cluster_id
を指定する必要はありません。各認証タイプに必要な構成プロファイル項目は次のとおりです。
Databricks 個人用アクセストークン認証の場合:
host
とtoken
.OAuth マシン間 (M2M) 認証 (サポートされている場合):
host
、client_id
、およびclient_secret
。OAuth ユーザー対マシン (U2M) 認証 (サポートされている場合) の場合:
host
.
注
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks 管理パスワードのサポート終了を参照してください。
この構成プロファイルに
DEFAULT
という名前を付けます。注
Databricks CLI バージョン 0.200.1 以降で
auth login
コマンドの--configure-cluster
オプションを使用すると、cluster_id
フィールドをDEFAULT
構成プロファイルに自動的に追加できます。 詳細については、コマンドdatabricks auth login -h
を実行してください。次に、
DatabricksSession
クラスを次のように初期化します。scala import com.databricks.connect.DatabricksSession val spark = DatabricksSession.builder().getOrCreate()