Если один из ваших операторов выдаст исключение, вся работа завершится неудачей. Он не сильно отличается от обычного приложения: если исключение не обрабатывается кем-либо, приложение завершится ошибкой.
Подумайте об этом так: вы бросаете исключение, если не знаете, как справиться с определенной ситуацией - это как-то указывает на то, что тот, кто позвонил мне, должен позаботиться об этом. По крайней мере, я не знаю, как вы могли бы сказать Флинку: пожалуйста, игнорируйте мои исключения.
Мое предложение: обработка исключений внутри ваших операторов. Это может означать, что вам нужно изменить тип оператора (или, по крайней мере, тип возвращаемого значения).
1007 * Е.Г. *
case class MyMapper() extends MapFunction[Double, Double] {
override def map(in : Double) : Double {
try {
1/in
}
catch {
case e : java.lang.ArithmeticException:
throw new RuntimeException(e)
}
}
}
Может стать оператором FlatMap, просто ничего не возвращая. Или вы измените тип возврата этого оператора, чтобы он возвращал Option типа Double вместо Double.
Надеюсь, это поможет