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
Я пробовал много способов:- (я не могу добавить схему вручную).
- withColumn.-> (С помощью этой опции я могу добавить новый столбец, но на корневом уровне мне нужно добавить его в определенную иерархию.)
- withColumnRenamed -> (эта опция ничего не меняет).
Любая помощь приветствуется!
1 ответ
Что ж, для этого нет ярлыка, так как он не позволяет изменить схему, которая находится на 1 уровень ниже.
Таким образом, вы можете подумать о том, чтобы разбить сложные теги на простые одноуровневые теги, включая первичный ключ для идентификации и объединения записей.
Если у вас есть простые теги, то с помощью columnRenamed или другого параметра вы можете изменить тип данных и присоединиться обратно, используя первичный ключ для создания исходного кадра данных (но с измененными именами или типами).