开始
加载和管理数据
处理数据
政府
参考和资源
2023年1月13日更新
给我们反馈
你可以致电数据库REST API使用Python代码自动化Databricks,而不是使用非Python命令行工具,例如旋度或API客户端,如Postman。要使用Python调用Databricks REST API,可以使用Databricks命令行包作为一个图书馆。这个库是用Python编写的,允许您通过Python类调用Databricks REST API,这些类紧密模拟Databricks REST API请求和响应有效负载。
旋度
请注意
直接使用Python请求图书馆是另一种方法。但是,您需要在较低的级别上工作,手动提供必要的标头、处理错误和其他相关的低级编码任务。有关更多信息,请参见使用Python调用Databricks REST API.
实验
这个Databricks CLI正在积极开发中,并以实验客户端。这意味着接口仍然会发生变化。
Databricks CLI支持调用以下Databricks REST接口:
集群策略API 2.0
集群API 2.0
DBFS API 2.0
Groups API 2.0
实例池API 2.0
Jobs API 2.1, 2.0
库API 2.0
Delta Live Tables API 2.0
回购API 2.0
秘密API 2.0
令牌API 2.0
Unity Catalog API 2.1
工作区API 2.0
Databricks命令行不支持调用以下Databricks REST接口:
帐户API 2.0
Databricks SQL查询,仪表板和警报API 2.0
Databricks SQL查询历史API 2.0
Databricks SQL仓库API 2.0
Git凭证API 2.0
全局初始化脚本API 2.0
实例概要API 2.0
IP访问列表API 2.0
MLflow API 2.0
权限API 2.0
Scim API 2.0
令牌管理API 2.0
API 1.2
有关详细信息,请参见Databricks REST API参考.
Python 3.6或以上版本。执行命令检查Python是否已安装,如果已安装,则检查已安装的版本python——版本从你的PowerShell终端。安装Python,如果尚未安装。
python——版本
python的版本
某些Python安装需要python3而不是python.如果是,替换python与python3贯穿本文。
python3
python
的砖CLI.执行命令查看Databricks命令行是否已安装,如果已安装,则查看已安装的版本号砖——版本.安装Databricks命令行,请执行皮普安装databricks-cli或python- m皮普安装databricks-cli.
砖——版本
皮普安装databricks-cli
python- m皮普安装databricks-cli
#检查是否安装了Databricks命令行,如果安装了,请检查安装的版本。砖,版本#安装Databricks命令行PIP安装databicks -cli#还是……Python -m PIP install databicks -cli
一些装置皮普需要pip3而不是皮普.如果是,替换皮普与pip3贯穿本文。
皮普
pip3
你的工作空间实例URL例如,https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com
https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com
Databricks工作空间的Databricks个人访问令牌。要创建Databricks个人访问令牌,请参见数据库个人访问令牌;另请参阅管理个人访问令牌.
要通过Databricks CLI包库使用Databricks REST API进行身份验证,您的Python代码至少需要两条信息:
你的工作空间实例URL例如,https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com.
为了代码的模块化、可移植性和安全性,不应该将这些信息硬编码到Python代码中。相反,您应该在运行时从安全位置检索此信息。例如,本文中的代码使用了以下环境变量:
DATABRICKS_HOST,代表你的工作空间实例URL例如,https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com.
DATABRICKS_HOST
DATABRICKS_TOKEN.Databricks工作空间的Databricks个人访问令牌。要创建Databricks个人访问令牌,请参见数据库个人访问令牌;另请参阅管理个人访问令牌.
DATABRICKS_TOKEN
环境变量的设置方法如下:
使用实例仅为当前终端会话设置环境变量。要为所有终端会话设置环境变量,请在shell的启动文件中输入以下命令,然后重新启动终端。用您自己的值替换这里的示例值。
出口DATABRICKS_HOST=“https://dbc-a1b2345c-d6e78.cloud.www.neidfyre.com”出口DATABRICKS_TOKEN=“dapi1234567890b2cd34ef5a67bc8de90fa12b”
执行以下命令,仅为当前PowerShell会话设置环境变量。用您自己的值替换这里的示例值。
集DATABRICKS_HOST=“https://dbc-a1b2345c-d6e78.cloud.www.neidfyre.com”集DATABRICKS_TOKEN=“dapi1234567890b2cd34ef5a67bc8de90fa12b”
要为所有命令提示符会话设置环境变量,请运行以下命令,然后重新启动命令提示符。用您自己的值替换这里的示例值。
对于setxDATABRICKS_HOST“https://dbc-a1b2345c-d6e78.cloud.www.neidfyre.com”对于setxDATABRICKS_TOKEN“dapi1234567890b2cd34ef5a67bc8de90fa12b”
在Python代码文件中,导入操作系统库使您的代码能够获得环境变量值。
进口操作系统
导入ApiClient类的databricks_cli.sdk.api_client模块使您的代码能够使用Databricks REST API进行身份验证。
ApiClient
从databricks_cli.sdk.api_client进口ApiClient
根据需要导入其他类,使您的代码能够在验证后调用Databricks REST API,如下所示。
REST API
进口语句
进口
从databricks_cli.cluster_policies.api进口ClusterPolicyApi
从databricks_cli.clusters.api进口ClusterApi
从databricks_cli.dbfs.api进口DbfsApi
从databricks_cli.dbfs.dbfs_path进口DbfsPath
从databricks_cli.groups.api进口GroupsApi
从databricks_cli.instance_pools.api进口InstancePoolsApi
职位API 2.1
从databricks_cli.jobs.api进口JobsApi(1)
从databricks_cli.jobs.api进口JobsApi
从databricks_cli.runs.api进口RunsApi( 2 )
从databricks_cli.runs.api进口RunsApi
从databricks_cli.libraries.api进口LibrariesApi
从databricks_cli.pipelines.api进口PipelinesApi,LibraryObject
从databricks_cli.repos.api进口ReposApi
从databricks_cli.secrets.api进口SecretApi
从databricks_cli.tokens.api进口TokensApi
从databricks_cli.unity_catalog.api进口UnityCatalogApi
从databricks_cli.workspace.api进口WorkspaceApi
(1)仅在工作中需要。
(2)仅用于作业运行。
例如,要调用集群API 2.0,添加以下代码:
使用ApiClient类使用Databricks REST API进行身份验证。使用操作系统图书馆的采用函数来获取工作空间实例URL例如,https://dbc-a1b2345c-d6e7.cloud.www.neidfyre.com以及令牌值。下面的示例使用变量名api_client类的实例ApiClient类。
操作系统
采用
api_client
api_client=ApiClient(宿主=操作系统.采用(“DATABRICKS_HOST”),令牌=操作系统.采用(“DATABRICKS_TOKEN”))
初始化类的实例,在认证后调用Databricks REST API,例如:
建议的类初始化语句
cluster_policies_api=ClusterPolicyApi (api_client)
clusters_api=ClusterApi (api_client)
dbfs_api=DbfsApi (api_client)
groups_api=GroupsApi (api_client)
instance_pools_api=InstancePoolsApi (api_client)
jobs_api=JobsApi (api_client)(1)
jobs_api=JobsApi (api_client)
runs_api=RunsApi (api_client)( 2 )
runs_api=RunsApi (api_client)
libraries_api=LibrariesApi (api_client)
pipelines_api=PipelinesApi (api_client)
repos_api=ReposApi (api_client)
secrets_api=SecretApi (api_client)
tokens_api=TokensApi (api_client)
unity_catalog_api=UnityCatalogApi (api_client)
workspace_api=WorkspaceApi (api_client)
例如,要初始化一个集群API 2.0实例,添加以下代码:
clusters_api=ClusterApi(api_client)
根据需要调用与Databricks REST API操作对应的类方法。要找到该方法的调用签名和使用说明,请参阅Databricks CLI源代码中以下模块的文档。
模块的文档
databricks_cli.cluster_policies.api
databricks_cli.clusters.api
databricks_cli.dbfs.api
databricks_cli.dbfs.dbfs_path
databricks_cli.groups.api
databricks_cli.instance_pools.api
databricks_cli.jobs.api(1)
databricks_cli.runs.api( 2 )
databricks_cli.libraries.api
databricks_cli.databricks_cli.pipelines.api
databricks_cli.repos.api
databricks_cli.secrets.api
databricks_cli.tokens.api
databricks_cli.unity_catalog.api
databricks_cli.workspace.api
例如,要使用集群API 2.0在工作区中列出可用的集群名称和它们的id,添加以下代码:
clusters_list=clusters_api.list_clusters()打印("集群名称,集群ID")为集群在clusters_list[“集群”]:打印(f"{集群[“cluster_name”]},{集群[“cluster_id”]}")
上述指令的完整代码如下:
进口操作系统从databricks_cli.sdk.api_client进口ApiClient从databricks_cli.clusters.api进口ClusterApiapi_client=ApiClient(宿主=操作系统.采用(“DATABRICKS_HOST”),令牌=操作系统.采用(“DATABRICKS_TOKEN”))clusters_api=ClusterApi(api_client)clusters_list=cluster_api.list_clusters()打印("集群名称,集群ID")为集群在clusters_list[“集群”]:打印(f"{集群[“cluster_name”]},{集群[“cluster_id”]}")
下面的例子展示了如何在Databricks CLI和Python中使用源代码来为一些基本的使用场景自动化Databricks REST API。
进口操作系统从databricks_cli.sdk.api_client进口ApiClient从databricks_cli.dbfs.api进口DbfsApi从databricks_cli.dbfs.dbfs_path进口DbfsPathapi_client=ApiClient(宿主=操作系统.采用(“DATABRICKS_HOST”),令牌=操作系统.采用(“DATABRICKS_TOKEN”))dbfs_source_file_path=“dbfs: / tmp /用户/ someone@example.com//hello-world.txt”local_file_download_path=”。/ hello-world.txt 'dbfs_api=DbfsApi(api_client)dbfs_path=DbfsPath(dbfs_source_file_path)#从本地下载工作空间文件。dbfs_api.get_file(dbfs_path,local_file_download_path,覆盖=真正的)打印下载文件的内容。打印(开放(local_file_download_path,“r”).读())
进口操作系统从databricks_cli.sdk.api_client进口ApiClient从databricks_cli.pipelines.api进口PipelinesApiapi_client=ApiClient(宿主=操作系统.采用(“DATABRICKS_HOST”),令牌=操作系统.采用(“DATABRICKS_TOKEN”))pipelines_api=PipelinesApi(api_client)pipelines_get=pipelines_api.得到(1234年a56b c789 - 0123 d456 - 78901234 e5f6”)打印(f“名称:{pipelines_get[“名字”]}\ n"\fID:{pipelines_get[“pipeline_id”]}\ n"\f”状态:{pipelines_get[“状态”]}\ n"\f创造者:{pipelines_get[“creator_user_name”]}")
进口操作系统从databricks_cli.sdk.api_client进口ApiClient从databricks_cli.unity_catalog.api进口UnityCatalogApiapi_client=ApiClient(宿主=操作系统.采用(“DATABRICKS_HOST”),令牌=操作系统.采用(“DATABRICKS_TOKEN”))unity_catalog_api=UnityCatalogApi(api_client)目录=“主要”模式=“my_schema”在指定的目录中创建模式(也称为数据库)。unity_catalog_create_schema=unity_catalog_api.create_schema(catalog_name=目录,schema_name=模式,评论="这是我的图式")打印(f”模式:{unity_catalog_create_schema[“名字”]}\ n"\f”老板:{unity_catalog_create_schema[“主人”]}\ n"\f“Metastore ID:{unity_catalog_create_schema[“metastore_id”]}")#删除模式。unity_catalog_api.delete_schema(f"{目录}.{模式}")
进口操作系统从databricks_cli.sdk.api_client进口ApiClient从databricks_cli.workspace.api进口WorkspaceApi,WorkspaceFileInfoapi_client=ApiClient(宿主=操作系统.采用(“DATABRICKS_HOST”),令牌=操作系统.采用(“DATABRICKS_TOKEN”))workspace_api=WorkspaceApi(api_client)workspace_list_objects=workspace_api.list_objects(“/用户/ someone@example.com/”)为对象在workspace_list_objects:打印(对象.to_row(is_long_form=真正的,is_absolute=真正的))