Как отслеживать уже обработанные файлы в hdfs в спарке - PullRequest
0 голосов
/ 13 мая 2019

Таким образом, у меня есть искорка, которая работает каждый час. Работа обрабатывает файлы из HDFS. Так что мне нужно знать, есть ли эффективный способ отслеживать те файлы в HDFS, которые уже обработаны. Файлы не могут быть перемещены / удалены / переименованы

Я пытался сохранить все имена файлов на карте вместе с их последним измененным временем и где-то сохранить последнюю запись карты (Say / user / xyz -> 159283742893472 - моя последняя запись на карте) и так, когда задание начинается снова, я могу использовать сохраненные данные и обрабатывать только те, которые находятся за пределами 159283742893472 (159283742893472 - это время в миллисекундах)

FileStatus[] fileStatusArray = fileSystem.listStatus(newPath(path));

for (FileStatus fileStatus : fileStatusArray) {
    long modificationTime =fileStatus.getModificationTime();
    filesMap.put(fileStatus.getPath().getName(), modificationTime);
}

Ожидается, что во избежание повторной обработки уже обработанных файлов

...