您可以使用Databricks工作區API (AWS|Azure|GCP)遞歸地列出給定路徑下的所有工作空間對象。
常見的用例包括:
- 為工作區中所有用戶的所有筆記本名稱和類型建立索引。
- 將輸出與其他API調用一起使用,可以刪除未使用的工作區或管理筆記本。
- 動態獲取給定用戶下筆記本的絕對路徑,並將其提交給Databricks Jobs API以觸發基於筆記本的作業(AWS|Azure|GCP).
定義函數
這個示例代碼定義了函數和運行它所需的邏輯。
你應該把這個代碼放在筆記本的開頭。
你需要替換<標記>用你的個人訪問令牌(AWS|Azure|GCP).
%python import requests import json from ast import literal_eval #授權headers = {'Authorization': ' holder',} #定義rec_req為一個函數。#注意:默認路徑為“/”,掃描所有用戶和文件夾。def rec_req(instanceName,loc="/"): data_path = '{{"path": "{0}"}}'.format(loc) instance = instanceName url = '{}/api/2.0/workspace/list'.format(實例)response =請求。get(url, headers=headers, data=data_path) #如果目錄或url不存在將引發異常。response.raise_for_status() jsonResponse = response.json() for i,result in jsonResponse.items(): for value in result: dump = json.dumps(value) data = literal_eval(dump) if data['object_type'] == 'DIRECTORY': #遍曆所有文件夾。rec_req(instanceName,data['path']) elif data['object_type'] == 'NOTEBOOK': #返回NOTEBOOK路徑。print(data) else: #跳過導入的庫。通過
運行函數
一旦在筆記本上定義了函數,就可以隨時調用它。
你需要替換<實例名稱>實例名(AWS|Azure|GCP)的Databricks部署。這通常是URL,沒有任何工作區ID。
你需要替換<路徑>使用您想要搜索的完整路徑。這是典型的/.
% python rec_req (" https:// <實例名稱>”、“<路徑>”)