Я пытаюсь включить оператор Try (). GetOrElse () в свой оператор выбора для DataFrame Spark.Проект, над которым я работаю, будет применен к нескольким средам.Однако каждая среда немного отличается с точки зрения именования необработанных данных ТОЛЬКО для одного поля.Я не хочу писать несколько разных функций для обработки каждого поля.Есть ли элегантный способ обработки исключений, как показано ниже, в операторе выбора DataFrame?
val dfFilter = dfRaw
.select(
Try($"some.field.nameOption1).getOrElse($"some.field.nameOption2"),
$"some.field.abc",
$"some.field.def"
)
dfFilter.show(33, false)
Тем не менее, я продолжаю получать следующую ошибку, которая имеет смысл, потому что она не существует в этих средах необработанных данных, но я ожидаю, что инструкция getOrElse перехватит это исключение.
org.apache.spark.sql.AnalysisException: No such struct field nameOption1 in...
Есть ли хороший способ обработки исключений в Scala Spark для операторов select?Или мне нужно будет кодировать разные функции для каждого случая?