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

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

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

谢谢

【问题讨论】:

  • 如果提到删除所有文件或文件夹,请提供更多信息

标签: databricks azure-databricks


【解决方案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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2022-01-23
    相关资源
    最近更新 更多