Как я могу прочитать файл XML Azure Databricks Spark

Я искал некоторую информацию на форумах MSDN, но не смог найти хороший форум / При чтении на спарк-сайте у меня есть подсказка, что здесь у меня больше шансов. Итак, в заключение, я хочу прочитать хранилище BLOB-объектов, в котором есть непрерывный поток XML-файлов, всех небольших файлов, и, наконец, мы храним эти файлы в Azure DW. Используя блоки данных Azure, я могу использовать Spark и python, но не могу найти способ "прочитать" тип xml. В некоторых примерах сценария использовалась библиотека xml.etree.ElementTree, но я не могу импортировать ее. Поэтому любая помощь, подталкивающая меня в правильном направлении, приветствуется.

3 ответа

Решение

Один из способов - использовать библиотеку databricks spark-xml:

  1. Импортируйте библиотеку spark-xml в ваше рабочее пространство https://docs.databricks.com/user-guide/libraries.html (найдите spark-xml в разделе пакета maven/spark и импортируйте его)
  2. Присоедините библиотеку к вашему кластеру https://docs.databricks.com/user-guide/libraries.html
  3. Используйте следующий код в своей записной книжке, чтобы прочитать файл XML, где "примечание" является корнем моего файла XML.

xmldata = spark.read.format ('xml'). option ("rootTag", "note"). load ('dbfs: /mnt/mydatafolder/xmls/note.xml')

Пример:

пример

Я нашел, что это действительно полезно. https://github.com/raveendratal/Pysparkтелугу/blob/master/Read_Write_XML_File.ipynb

у него есть ютуб, чтобы пройтись по шагам.

в общем, 2 подхода:

  1. установить в свой кластер databricks на вкладке «библиотека».
  2. установите его, запустив spark-shell в самом ноутбуке.

У меня есть одно решение для чтения XML-файла в блоках данных:

установите эту библиотеку: com.databricks:spark-xml_2.12:0.11.0, используя эту (10.5 (включая Apache Spark 3.2.1, Scala 2.12)) конфигурацию кластера.

С помощью этой команды (%fs head "") вы получите rootTag и rowTag.

df = spark.read.format('xml').option("rootTag","orders").option("rowTag","purchase_item").load("dbfs:/databricks-datasets/retail-org/purchase_orders /purchase_orders.xml")

display(df)эталонное изображение для решения для чтения XML-файла в блоках данных

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