Как я могу прочитать файл XML Azure Databricks Spark
Я искал некоторую информацию на форумах MSDN, но не смог найти хороший форум / При чтении на спарк-сайте у меня есть подсказка, что здесь у меня больше шансов. Итак, в заключение, я хочу прочитать хранилище BLOB-объектов, в котором есть непрерывный поток XML-файлов, всех небольших файлов, и, наконец, мы храним эти файлы в Azure DW. Используя блоки данных Azure, я могу использовать Spark и python, но не могу найти способ "прочитать" тип xml. В некоторых примерах сценария использовалась библиотека xml.etree.ElementTree, но я не могу импортировать ее. Поэтому любая помощь, подталкивающая меня в правильном направлении, приветствуется.
3 ответа
Один из способов - использовать библиотеку databricks spark-xml:
- Импортируйте библиотеку spark-xml в ваше рабочее пространство https://docs.databricks.com/user-guide/libraries.html (найдите spark-xml в разделе пакета maven/spark и импортируйте его)
- Присоедините библиотеку к вашему кластеру https://docs.databricks.com/user-guide/libraries.html
- Используйте следующий код в своей записной книжке, чтобы прочитать файл 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 подхода:
- установить в свой кластер databricks на вкладке «библиотека».
- установите его, запустив 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-файла в блоках данных