Обработка префикса пространства имен при сохранении данных в Avro с использованием Spark
Я пытаюсь преобразовать данные XML в Avro с помощью Spark и документов XML, которые у меня есть, имеют различные пространства имен и представляют собой сложные типы с глубоко вложенными структурами.
При попытке сохранить данные в формате Avro я получаю следующую ошибку
org.apache.avro.SchemaParseException: Illegal character in: ns1:arrivalInformation
правильно, так как Avro не допускает ":" в имени поля.
Я пытаюсь создать схему Avro из моих данных, поэтому я не могу предоставить схему при попытке сохранить данные в формате Avro.
Один вариант у меня есть переименовать столбец на DataFrame. Как бы то ни было, это кажется очень сложной задачей из-за вложенности данных, и мне нужно было предоставить огромные типы распорок.
Я пытаюсь рекурсивно перемещаться по схеме DataFrame и переименовывать столбцы, вызывая функцию.
Мое единственное намерение переименовать (заменить специальные символы на '_') столбцы - сделать имена этих столбцов действительными для формата Avro.
Цените любые входные данные.
Спасибо