Databricks ユーティリティ with Databricks Connect for Python
注
この記事では、Databricks Runtime 13.3 LTS 以降の Databricks Connect について説明します。
この記事では、Databricks Connect for Python で Databricks ユーティリティ を使用する方法について説明します。 Databricks Connect を使用すると、一般的な IDE、ノートブック サーバー、およびカスタム アプリケーションを Databricks クラスターに接続できます。 「Databricks Connect とは」を参照してください。この記事の Scala バージョンについては、「 Databricks Connect for Scala を使用した Databricks ユーティリティ」を参照してください。
注
Databricks Connectの使用を開始する前に、Databricks Connect クライアントをセットアップする必要があります。
次のように、Databricks Connect を使用して Databricks ユーティリティにアクセスします。
WorkspaceClient
クラスのdbutils
変数を使用して、Databricks ユーティリティにアクセスします。WorkspaceClient
クラスは Databricks SDK for Python に属し、Databricks Connect に含まれています。dbutils.fs
を使用して、Databricks Utilities の fs ユーティリティにアクセスします。dbutils.secrets
を使用して、Databricks Utilities シークレット ユーティリティにアクセスします。上記のユーティリティ以外の Databricks ユーティリティ機能は、
dbutils
から使用できません。
ヒント
また、付属の Databricks SDK for Python を使用して、前述の Databricks ユーティリティ APIsだけでなく、使用可能な任意の Databricks REST API にアクセスすることもできます。 PyPI の databricks-sdk を参照してください。
WorkspaceClient
初期化するには、ワークスペースで Databricks SDK を認証するための十分な情報を指定する必要があります。たとえば、次のことができます。
ワークスペースの URL とアクセストークンをコード内に直接ハードコーディングし、次のように
WorkspaceClient
初期化します。 このオプションはサポートされていますが、コードがバージョン管理にチェックインされている場合や共有されている場合、アクセストークンなどの機密情報が公開される可能性があるため、Databricks ではこのオプションを お勧めしません 。from databricks.sdk import WorkspaceClient w = WorkspaceClient(host = f"https://{retrieve_workspace_instance_name()}", token = retrieve_token())
フィールド
host
とtoken
を含む設定プロファイルを作成または指定し、次のようにWorkspaceClient
を初期化します。from databricks.sdk import WorkspaceClient w = WorkspaceClient(profile = "<profile-name>")
Databricks Connect に対して設定するのと同じ方法で環境変数を
DATABRICKS_HOST
とDATABRICKS_TOKEN
に設定し、次のようにWorkspaceClient
初期化します。from databricks.sdk import WorkspaceClient w = WorkspaceClient()
Databricks SDK for Python では、Databricks Connect の SPARK_REMOTE
環境変数は認識されません。
Databricks SDK for Python の追加の Databricks 認証オプションと、ワークスペース レベルではなくアカウント レベルで使用可能な Databricks REST APIs にアクセスするために Databricks SDK 内でAccountClient
を初期化する方法については、PyPI の databricks-sdk に関するページを参照してください。
次の例は、Databricks SDK for Python を使用して Databricks ユーティリティを自動化する方法を示しています。 この例では、ワークスペース内の Unity Catalog ボリュームのパスに zzz_hello.txt
という名前のファイルを作成し、ファイルからデータを読み取ってから削除します。 この例では、環境変数 DATABRICKS_HOST
と DATABRICKS_TOKEN
がすでに設定されていることを前提としています。
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs
fs.put(
file = file_path,
contents = file_data,
overwrite = True
)
print(fs.head(file_path))
fs.rm(file_path)
Databricks SDK for Python ドキュメントの 「dbutils との相互作用 」も参照してください。