以编程方式 运行 带有 LIKE 运算符的笔记本
Programmatically running notebook with LIKE operator
在 Databricks 存储库中,假设我想以编程方式 运行 一个标题为 'ExampleNotebook_45' 的笔记本,但我只想使用标题的一部分 'ExampleNotebook',我该如何写这个命令:
dbutils.notebook.run()
想到的类似语言是 sql 中的 LIKE 运算符,我可以按照以下行编写:
select * from table where name LIKE 'ar%'
经过一些研究,这是解决问题的答案,通过工作区获取文件夹中的文件列表API
import requests
import json
ctx = json.loads(dbutils.entry_point.getDbutils().notebook().getContext.toJson())
my_pat = ctx['extraContext']['api_token']
workspace_url = 'https://'
def list_files(base_path: str):
lst = requests.request(method='get',
url=f"{workspace_url}/api/2.0/workspace/list",
headers={"Authentication": f"Bearer {my_pat}"},
json={"path": base_path}).json()["objects"]
results = []
for i in lst:
if i["object_type"] == "DIRECTORY" or i["object_type"] == "REPO":
results.extend(list_files(i["path"]))
else:
results.append(i["path"])
return results
all_files = list_files("base_path")
for i in all_files:
if 'ExampleNotebook' in i:
file_name = i
else:
continue
这将给我文件名(和路径),类似于 LIKE sql 运算符。
在 Databricks 存储库中,假设我想以编程方式 运行 一个标题为 'ExampleNotebook_45' 的笔记本,但我只想使用标题的一部分 'ExampleNotebook',我该如何写这个命令:
dbutils.notebook.run()
想到的类似语言是 sql 中的 LIKE 运算符,我可以按照以下行编写:
select * from table where name LIKE 'ar%'
经过一些研究,这是解决问题的答案,通过工作区获取文件夹中的文件列表API
import requests
import json
ctx = json.loads(dbutils.entry_point.getDbutils().notebook().getContext.toJson())
my_pat = ctx['extraContext']['api_token']
workspace_url = 'https://'
def list_files(base_path: str):
lst = requests.request(method='get',
url=f"{workspace_url}/api/2.0/workspace/list",
headers={"Authentication": f"Bearer {my_pat}"},
json={"path": base_path}).json()["objects"]
results = []
for i in lst:
if i["object_type"] == "DIRECTORY" or i["object_type"] == "REPO":
results.extend(list_files(i["path"]))
else:
results.append(i["path"])
return results
all_files = list_files("base_path")
for i in all_files:
if 'ExampleNotebook' in i:
file_name = i
else:
continue
这将给我文件名(和路径),类似于 LIKE sql 运算符。