Обработка префикса пространства имен при сохранении данных в Avro с использованием Spark

Я пытаюсь преобразовать данные XML в Avro с помощью Spark и документов XML, которые у меня есть, имеют различные пространства имен и представляют собой сложные типы с глубоко вложенными структурами.

При попытке сохранить данные в формате Avro я получаю следующую ошибку

org.apache.avro.SchemaParseException: Illegal character in: ns1:arrivalInformation

правильно, так как Avro не допускает ":" в имени поля.

Я пытаюсь создать схему Avro из моих данных, поэтому я не могу предоставить схему при попытке сохранить данные в формате Avro.

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

Я пытаюсь рекурсивно перемещаться по схеме DataFrame и переименовывать столбцы, вызывая функцию.

Мое единственное намерение переименовать (заменить специальные символы на '_') столбцы - сделать имена этих столбцов действительными для формата Avro.

Цените любые входные данные.

Спасибо

0 ответов

Другие вопросы по тегам