如何獲取作業區中所有筆記本的串列并將它們的名稱以及完整路徑存盤在 csv 檔案中,我曾嘗試使用 Databricks CLI 選項,但似乎沒有遞回操作。
資料塊作業區串列
uj5u.com熱心網友回復:
正如我們在代碼中看到的,沒有遞回選項:https : //github.com/databricks/databricks-cli/blob/master/databricks_cli/workspace/cli.py (def ls_cli)
示例解決方案是在 python 中匯入 cli 并擴展它:
from databricks_cli.sdk import ApiClient
from databricks_cli.sdk import service
host = "your_host"
token = "your_token"
client = ApiClient(host=host, token=token)
objects = []
workspace = service.WorkspaceService(client)
def list_workspace_objects(path):
elements = workspace.list(path).get('objects')
if elements is not None:
for object in elements:
objects.append(object)
if(object['object_type'] == 'DIRECTORY'):
list_workspace_objects(object['path'])
list_workspace_objects("/")
print(objects)
uj5u.com熱心網友回復:
您可以直接使用以下代碼。注意:測驗代碼
from pyspark.sql.types import IntegerType
from pyspark.sql.types import *
from pyspark.sql import Row
import base64
import requests
import json
databricks_instance ="databricks Instance"
url_list = f"{databricks_instance}/api/2.0/workspace/list"
url_export = f"{databricks_instance}/api/2.0/workspace/export"
payload = json.dumps({
"path": "/"
})
headers = {
'Authorization': 'Bearer token',
'Content-Type': 'application/json'
}
response = requests.request("GET", url_list, headers=headers, data=payload).json()
notebooks = []
# Getting the all notebooks list for given notebooks.
def list_notebooks(mylist):
for element in mylist['objects']:
if element['object_type'] == 'NOTEBOOK':
notebooks.append(element)
if element['object_type'] == 'DIRECTORY':
payload_inner = json.dumps({
"path": element['path']
})
response_inner = requests.request("GET", url_list, headers=headers, data=payload_inner).json()
if len(response_inner) != 0:
list_notebooks(response_inner)
return notebooks
result = list_notebooks(response)
print(result[0])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/366553.html
標籤:电源外壳 命令行界面 数据块 azure-databricks
