Нет, нет надежного способа. Кстати, нет, это тоже ответ.
Logi c для проверки исключений, как правило, выполняется с помощью команды try / catch, работающей на драйвере, и выполняется так, как вы ее кодировали. Это принятая парадигма и логика, которую можно утверждать. Но этот подход является ошибкой, генерируемой драйвером.
Поскольку непредвиденные ситуации на уровне исполнителя уже стандартно обрабатываются самой Spark Framework для структурированной потоковой передачи, и если ошибка не может быть исправлена, то приложение / задание просто аварийно завершает работу после того, как сигнализирует об ошибке (ях) обратно драйвер, если вы не пишете код try / catch в различных конструкциях foreachXXX. Тем не менее, не ясно, что микропакет будет извлекаемым при таком подходе, на самом деле, некоторая часть микропартии, скорее всего, потеряна. Трудно проверить, хотя.
Учитывая, что в Spark стандартно предусмотрены вещи, к которым вы не можете подключиться, с какой стати можно вставить al oop / try / catch в исходный текст программы? Точно так же возникает проблема с широковещательными переменными, хотя, как говорят, у некоторых есть методы, связанные с этим. Но это не в духе рамок.
Итак, хороший вопрос, как мне интересно (ред.) Об этом (в прошлом).