こちらをDatabricks Container Serviceで構築したクラスターで実行したところ、w = WorkspaceClient()
でエラーに遭遇しました。
ValueError: default auth: cannot configure default credentials, please check https://docs.databricks.com/en/dev-tools/auth.html#databricks-client-unified-authentication to configure credentials for your preferred authentication method.
こちらにヒントがありました。
Default auth from a notebook using sdk on DCS is yet to be tested by Engineering. Please use PAT auth for now.
DCS(Databricks Container Service)におけるSDKを用いたノートブックのデフォルト認証はエンジニアリングによるテストはされていません。現時点ではPAT(Personal Access Token)を使ってください。
WorkspaceClient
の引数を指定しない場合、デフォルトの認証を用いてアクセスを試みますが、これが未テストということでしたので、明示的にパーソナルアクセストークンを指定します。こちらに従って、パーソナルアクセストークンを取得します。
以下のように指定します。平文で指定していますが、実運用ではシークレットを使ってください。
from databricks.sdk import WorkspaceClient
from pprint import pprint
# WorkspaceClient のインスタンスを作成
w = WorkspaceClient(host="https://<Databricksワークスペースのホスト名>", token="<パーソナルアクセストークン>")
# 現在のクラスターの情報を取得
current_cluster = w.clusters.get(current_cluster_id)
# クラスターの情報を表示
pprint(vars(current_cluster))
これで動きました。