В Spark 2.2.0 контрольные точки работают немного иначе, чем в версиях. Существует папка коммитов, которая создается, и после завершения каждого пакета файл записывается в папку.
Я сталкиваюсь со сценарием, в котором у меня около 10 тыс. начинается с начала и происходит дублирование данных 5k записей.
Насколько я понимаю, похоже, что когда записывается файл фиксации, и когда вы перезапускаете, он выбирает из последнего смещения, в противном случае он повторно обрабатывает данные в последнем успешном пакете.
Как задать количество обрабатываемых документов в пакете?