我想遍历文件夹中的一些文件,该文件夹的路径在 databricks Repos 中。如何做到这一点?我似乎无法访问 Repos 中的文件
我添加了一张图片,显示了我想要访问的文件夹(dbrks 和 sql 文件夹)
谢谢 :)
我想遍历文件夹中的一些文件,该文件夹的路径在 databricks Repos 中。如何做到这一点?我似乎无法访问 Repos 中的文件
我添加了一张图片,显示了我想要访问的文件夹(dbrks 和 sql 文件夹)
谢谢 :)
You can read files from repo folders. The path is /mnt/repos/
, this is the top folder when opening the repo window. You can then iterate yourself over these files.
Whenever you find the file you want you can read it with (for example) Spark. Example if you want to read a CSV file.
spark.read.format("csv").load(
path, header=True, inferSchema=True, delimiter=";"
)
如果您只想列出存储库中的文件,则可以使用Workspace REST API的 list 命令。使用它,您可以实现文件的递归列表。根据您的要求,实际实现会有所不同,例如,如果您需要生成完整路径列表与带有子目录的列表等。这可能是这样的(未经测试):
import requests
my_pat = "generated personal access token"
workspace_url = "https://name-of-workspace"
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("/Repos/<my-initial-folder")
但是,如果您想读取存储库中文件的内容,则需要使用自 DBR 8.4 起提供的所谓的任意文件支持。