У меня есть искровой фрейм данных, в котором есть столбцы value
, key
и другие, value
столбец имеет xml в виде строки
Теперь я хотел бы создать новый фрейм данных, где xml содержимое столбца value
читается так, как будто я читаю spark.read.xml
и добавляю другие столбцы, например key
, к новому DF
Возможно ли это?
I Обычно я читаю xml файлы, используя этот
dfx = spark.read.load('books.xml', format='xml', rowTag='bks:books', valueTag="_ele_value")
dfx.schema
Пытаясь получить аналогичный вывод данных с фрейма при попытке прочитать его из столбца value
(это исходит от kafka)
Моя xml имеет глубоко вложенную структуру, просто пример книг xml с вложенными 2 уровнями
<?xml version="1.0" encoding="UTF-8"?>
<bks:books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bks="urn:books"
xsi:schemaLocation="urn:books books.xsd" xmlns:ot="http://maven.apache.org/POM/4.0.0">
<book id="b001">
<author>Brandon Sanderson</author>
<title>Mistborn</title>
<genre sub='epic'>Fantasy</genre>
<price>50</price>
<pub_date>2006-12-17T09:30:47.0Z</pub_date>
<review>
<title>Wonderful</title>
<content>I love the plot twist and the new magic</content>
</review>
<review>
<title>Unbelievable twist</title>
<content>The best book i ever read</content>
</review>
<sold>10</sold>
</book>
<book id="b002">
<author>Brandon Sanderson</author>
<title>Way of Kings</title>
<genre sub='epic'>Fantasy</genre>
<price>50</price>
<pub_date>2006-12-17T09:30:47.0Z</pub_date>
<sold>10</sold>
</book>
</bks:books>