Spark Dataframe проверяет имена столбцов для записи паркета (scala)

Я обрабатываю события, используя Dataframes, преобразованные из потока событий JSON, который в конечном итоге записывается в формате Parquet.

Тем не менее, некоторые из событий JSON содержат пробелы в ключах, которые я хочу регистрировать и фильтровать / отбрасывать такие события из фрейма данных перед преобразованием его в Parquet, потому что; {} () \ n \ t = считаются специальными символами в Parquet схема (CatalystSchemaConverter), как указано в[1] ниже и, следовательно, не должно быть разрешено в именах столбцов.

Как я могу выполнить такие проверки в Dataframe для имен столбцов и вообще удалить такое событие, не выполняя ошибку задания Spark Streaming.

[1] Spark's CatalystSchemaConverter

def checkFieldName(name: String): Unit = {
    // ,;{}()\n\t= and space are special characters in Parquet schema
    checkConversionRequirement(
      !name.matches(".*[ ,;{}()\n\t=].*"),
      s"""Attribute name "$name" contains invalid character(s) among " ,;{}()\\n\\t=".
         |Please use alias to rename it.
       """.stripMargin.split("\n").mkString(" ").trim)
  }

Ответы на вопрос(0)

Ваш ответ на вопрос