如何使用 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”