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

Car*_*onp 33 databricks azure-databricks dbutils

有人可以让我知道如何使用 databricks dbutils 删除文件夹中的所有文件。我已尝试以下操作,但不幸的是,Databricks 不支持通配符。

dbutils.fs.rm('adl://azurelake.azuredatalakestore.net/landing/stageone/*')
Run Code Online (Sandbox Code Playgroud)

谢谢

jeg*_*don 43

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

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

其中第二个参数是一个布尔标志,用于设置递归性,因此您只需将其设置为 true:

dbutils.fs.rm('adl://azurelake.azuredatalakestore.net/landing/stageone/',True)
Run Code Online (Sandbox Code Playgroud)

  • 这也会删除该目录。如何删除所有文件*而不*删除目录? (6认同)

cel*_*zar 5

像这样的东西应该有效:

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