如何使用 Databricks dbutils 从文件夹中删除所有文件

Posted

技术标签:

【中文标题】如何使用 Databricks dbutils 从文件夹中删除所有文件【英文标题】:How to delete all files from folder with Databricks dbutils 【发布时间】:2019-06-02 13:08:04 【问题描述】:

谁能告诉我如何使用databricks dbutils 从文件夹中删除所有文件。 我尝试了以下方法,但不幸的是,Databricks 不支持通配符。

dbutils.fs.rm('adl://azurelake.azuredatalakestore.net/landing/stageone/*')

谢谢

【问题讨论】:

如果提到删除所有文件或文件夹,请提供更多信息 【参考方案1】:

根据documentation,rm函数接收2个参数:

rm(dir: String, recurse: boolean = false): boolean -> 删除文件或目录

其中第二个参数是设置递归的布尔标志,所以你只需要将它设置为true:

dbutils.fs.rm('adl://azurelake.azuredatalakestore.net/landing/stageone/',True)

【讨论】:

这也会删除目录。如何删除所有文件而不删除目录? @jegordon 你的回答是错误的问题是删除文件而不是文件夹本身。 错误分析器,这也会删除文件夹,而不仅仅是文件夹的内容。 (在这种情况下,特殊文件夹权限也被删除) dbutils.fs.rm("adl://azurelake.azuredatalakestore.net/landing/stageone/", true)【参考方案2】:

这样的事情应该可以工作:

val PATH = "adl://azurelake.azuredatalakestore.net/landing/stageone/"
dbutils.fs.ls(PATH)
            .map(_.name)
            .foreach((file: String) => dbutils.fs.rm(PATH + file, true))

【讨论】:

以上是关于如何使用 Databricks dbutils 从文件夹中删除所有文件的主要内容,如果未能解决你的问题,请参考以下文章

如何以特定顺序使用 Databricks dbutils 复制文件

从 Databricks 中的 dbutils.fs.ls 输出创建数据框

databricks python dbutils无法将文件从一个目录移动到另一个目录

Azure Databricks Notebook 在包中时无法找到“dbutils”

如何从 Azure Databricks 在 Azure Blob 中创建一个空文件夹

使用 /mnt/ 将数据从 Azure Blob 存储读取到 Azure Databricks