Выделение поврежденных строк данных в Apache Spark / Databricks

#apache-spark #apache-spark-sql #etl #databricks

#apache-spark #apache-spark-sql #etl #databricks

Вопрос:

Я использую Apache Spark (через DataBricks и Scala) для преобразования некоторых данных из необработанной формы (в базе данных SQL, но со всем, что является нечетким VARCHAR) в структурированный from (в другой базе данных SQL, но с проверенными правильными типами и значениями и т.д.).

Обычно это работает нормально, но многие встроенные функции Spark (например, .cast(IntegerType) ) просто устанавливают недопустимые значения в null. Есть ли способ вместо этого регистрировать и отделять «плохие» строки (для дальнейшего изучения)?

Обратите внимание, я не могу просто отфильтровать нулевые значения после того, как данные содержат много допустимых нулей, которые должны быть включены.

Комментарии:

1. вы можете выполнить преобразование карты, а внутри карты иметь пользовательскую логику для очистки полей. если очистка какого-либо конкретного поля завершается неудачей, вы можете зарегистрировать это и использовать исключение. и еще один момент — вы также можете добавить новый столбец в finalDF с типом Map<имя_поля,errormessage> … запишите это в отдельную папку, чтобы проверить проблемы.

2. Есть какой-нибудь воспроизводимый пример? трудно представить.