HDFS перечисляет все папки, которые содержат определенную строку в имени - PullRequest
0 голосов
/ 19 января 2020

У меня есть каталог (с несколькими подкаталогами, в котором также могут быть подкаталоги), по которому я хочу перебрать и перечислить все файлы, в имени которых есть определенная строка.

Я не уверен, как перебрать все каталоги. Кроме того, я хотел бы игнорировать все папки, к которым у меня нет разрешения, поскольку я иногда получаю org. apache .had oop .security.AccessControlException .

Здесь мой код, который в настоящее время выполняет итерацию только в глубокий заданный путь, но не go возвращается к root пути, если ничего не находит.

  def searchForFile(folderPath: String): List[String] = {
    fileSystem
      .listStatus(new Path(folderPath))
      .flatMap { status =>
        if (status.isFile && (status.getPath.getName).contains("something"))
          List(status.getPath.getName)
        else
          searchForFile(folderPath + "/" + status.getPath.getName)
      }
      .toList.sorted
  }
...