Spark DataFrame xml изменить имя столбца

Я пытался загрузить XML-файлы, используя DataBricks Spark XML. Я могу загрузить данные правильно, но мне нужно изменить имя одного из столбцов и поместить его в виде отдельного тега внутри схемы. По сути, есть несколько тегов, которые должны быть сгенерированы как нулевые, которые не входят в данные (эти поля в XSD).

Пример:-

root
  First Tag
     Element Name
     Second Tag ( Tag To Change)
        Tag3
        Tag4

Мне нужно поменять на

root
  First Tag
     Element Name
     Second Tag 
        Tag3
        Tag4
     Third Tag 
        Tag3
        Tag4

Я пробовал много способов:- (я не могу добавить схему вручную).

  1. withColumn.-> (С помощью этой опции я могу добавить новый столбец, но на корневом уровне мне нужно добавить его в определенную иерархию.)
  2. withColumnRenamed -> (эта опция ничего не меняет).

Любая помощь приветствуется!

1 ответ

Решение

Что ж, для этого нет ярлыка, так как он не позволяет изменить схему, которая находится на 1 уровень ниже.

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

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

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