Как удалить все файлы из папки с помощью Databricks dbutils

Может ли кто-нибудь сообщить мне, как использовать databricks dbutils для удаления всех файлов из папки. Я пробовал следующее, но, к сожалению, Databricks не поддерживает подстановочные знаки.

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

Спасибо


person Carltonp    schedule 07.01.2019    source источник
comment
Пожалуйста, предоставьте дополнительную информацию, если вы также имеете в виду удаление всех файлов или папок.   -  person Paul Velthuis    schedule 05.06.2019


Ответы (2)


Согласно документации, Функция rm принимает 2 параметра:

rm (dir: String, recurse: boolean = false): boolean -> Удаляет файл или каталог.

Где второй параметр - это логический флаг для установки рекурсивности, поэтому вам просто нужно установить для него значение true:

dbutils.fs.rm('adl://azurelake.azuredatalakestore.net/landing/stageone/',True)
person jegordon    schedule 08.01.2019
comment
Это также удаляет каталог. Как удалить все файлы без удаления каталога? - person Samuel; 26.03.2019
comment
@jegordon ваш ответ неправильный, вопрос в том, чтобы удалить файлы, а не саму папку. - person Paul Velthuis; 05.06.2019
comment
неправильный ансер, это также удаляет папку, а не только ее содержимое. (в этом случае также удаляются специальные права доступа к папке) - person gszecsenyi; 17.03.2020

Примерно так должно работать:

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