Как проверить, пустой ли каталог HDFS в Spark - PullRequest
0 голосов
/ 19 июня 2019

Я использую org.apache.hadoop.fs, чтобы проверить, пуст ли каталог в HDFS или нет.Я посмотрел API-интерфейс FileSystem, но не смог найти ничего похожего на него.В основном я хочу проверить, является ли каталог пустым или сколько файлов существует в нем.

Мне удалось найти метод "существует", но это только говорит о том, существует ли путь.

val hdfs = FileSystem.get(spark.sparkContext.hadoopConfiguration)
val containsFile = fs.exists(new Path(dataPath))

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Вы можете получить ContentSummary и проверить количество файлов или каталогов

ContentSummary cs = fileSystem.getContentSummary("path");
long fileCount = cs.getFileCount();
0 голосов
/ 19 июня 2019

Я бы применил:

  1. listFiles () из класса FileSytem , например:

    FileSystem.get (sc.hadoopConfiguration ()) .listFiles (..., true)

  2. Спросить, есть ли элементы с методом hasNext () из возвращенного объекта RemoteIterator .

...