Как получить идемпотентную гарантию при написании искры dataset.to hdfs? - PullRequest
1 голос
/ 30 января 2020

У меня есть искровой процесс, который пишет в hdfs (файлы паркета). Я предполагаю, что по умолчанию, если спарк имеет некоторый сбой и повтор, он может записать несколько файлов дважды (я не прав?).

Но тогда, как мне сделать, чтобы получить идемпотентность на выходе hdfs?

Я вижу две ситуации, которые следует задавать по-разному (но, пожалуйста, исправьте меня или разработайте, если вы знаете лучше):

  1. ошибка возникает при записи одного элемента: я думаю, что записи перезапустил, таким образом мог написать дважды, если пост на hdfs не "atomi c" по отношению к вызову записи write. Каковы шансы?
  2. сбой происходит в любом месте, но из-за того, как выполняется даг выполнения, перезапуск произойдет в задаче, которая предшествует нескольким задачам записи (я думаю о необходимости перезапуска до некоторые groupBy например), и некоторые из этих задач записи были уже выполнены. Гарантирует ли исполнение spark, что эти задачи больше не будут вызываться?
...