如何从 Azure Databricks 在 Azure Blob 中创建一个空文件夹
Posted
技术标签:
【中文标题】如何从 Azure Databricks 在 Azure Blob 中创建一个空文件夹【英文标题】:How to create a empty folder in Azure Blob from Azure databricks 【发布时间】:2020-10-14 18:11:55 【问题描述】:我有一个场景,我想列出 Azure Blob 目录中的所有文件夹。如果没有文件夹存在,则创建一个具有特定名称的新文件夹。
我正在尝试使用 dbutils.fs.ls(path) 列出文件夹。
但上述命令的问题是,如果路径不存在,它会失败,这对我来说是一个有效的场景。
如果我的程序第一次运行,路径将不存在,dbutils.fs.ls 命令将失败。 有什么方法可以从 Databricks 动态处理这种情况。
如果我可以在执行作业之前从 Databricks 在 Azure Blob 中创建一个空文件夹,这对我也有用。
我已尝试从 databricks 笔记本中运行以下命令
%sh mkdir -p /mnt/<mountName>/path/folderName
这里命令运行成功,即使我在 Azure Blob 中的容器已挂载,它也不会创建文件夹。 对不起,这么长的帖子。任何帮助深表感谢。提前致谢
【问题讨论】:
仅供参考,blob 存储(不是 ADLS Gen2)不允许创建空文件夹,除非该文件夹包含至少一个文件。因此,您可以尝试在其中创建一个文件夹以及一个文件/blob。 是的,这正是问题所在。我想我会简单地处理 dbutils.fs.ls 命令在路径不存在时使用 try 和 except 失败。如果路径或文件不存在,则无法创建文件夹 【参考方案1】:dbutils.fs.mkdirs("/mnt/<mountName>/path/folderName")
我发现这可以创建一个安装了 blob 存储的文件夹
【讨论】:
就我而言,这成功了:dbutils.fs.mkdirs("dbfs:/mnt/folder_desktop/test/uploads")
以上是关于如何从 Azure Databricks 在 Azure Blob 中创建一个空文件夹的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Azure Databricks 在 Azure Blob 中创建一个空文件夹
如何在 Azure Databricks 中使用 JDBC 从 PostgreSQL 读取表数据?
作业终止后如何将生成的文件从 Azure Databricks 导出到 Azure DevOps?
如何使用 python 从 azure databricks notebook 连接到本地 Windows 服务器?