В исходных данных имеется необязательное поле, которое часто отсутствует.Конвейер Spark выполняет множество различных преобразований, включая набор dataframe.select
операторов, и часто выполняет преобразование между Dataframe и JSON rdds и обратно.
Моя проблема заключается в следующем: при преобразовании из фрейма данных в формат JSON rdd метод toJSON
автоматически удаляет поля только с нулевыми значениями.Затем, когда я делаю оператор dataframe.select
после преобразования обратно в фрейм данных, поле больше не существует, и выборочная проверка завершается ошибкой.
Мое временное решение - создать поле в самом начале, если оно отсутствует, и присвоить ему значение «ЗАМЕНИТЬ МЕНЯ», а затем изменить их все на ноль в конце конвейера перед записью вбазы данных.