Как получить доступ к файлу XML из Azure Data Lake Gen2 и преобразовать его в фрейм данных в Azure Databricks? - PullRequest
0 голосов
/ 14 февраля 2020

нам нужно получить доступ к файлу XML, расположенному в Azure Озеро данных Gen2 и преобразовать его в кадр данных, как показано ниже.

Пример XML данных:

<SOAP-ENV:Envelope
   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>
           <ns2:getProjectsResponse
               xmlns:ns2="http://www.logic8.com/eq/webservices/generated">
               <ns2:Project>
                   <ns2:fileName>P10001</ns2:fileName>
                   <ns2:alias>project1</ns2:alias>
               </ns2:Project>
               <ns2:Project>
                   <ns2:fileName>P10002</ns2:fileName>
                   <ns2:alias>project2</ns2:alias>
               </ns2:Project>
       <ns2:Project>
                   <ns2:fileName>P10003</ns2:fileName>
                   <ns2:alias>project3</ns2:alias>
               </ns2:Project>
           </ns2:getProjectsResponse>
       </SOAP-ENV:Body>
   </SOAP-ENV:Envelope>

Ожидаемый выходной кадр данных:

enter image description here

Может кто-нибудь помочь мне в этом.

1 Ответ

1 голос
/ 17 февраля 2020

Во-первых, вам нужно научиться читать данные из Azure озера данных Gen2 в Azure блоки данных.

Существует множество учебных пособий, из которых вы можете научиться:

  1. Блоки данных: импорт данных из хранилища BLOB-объектов . Этот блог посвящен импорту данных из хранилища BLOB-объектов в Azure блоки данных.
  2. Блоки данных Azure хранилище BLOB-объектов : в этой статье объясняется, как получить доступ к Azure хранилищу BLOB-объектов путем монтирования хранилища с помощью DBFS или напрямую с помощью API.

Во-вторых, для типа данных xml вам необходимо использовать библиотеку databricks spark- xml , которую имеет @Axel R предоставлено в комментарии.

  1. Импорт библиотеки spark- xml в рабочее пространство https://docs.databricks.com/user-guide/libraries.html#create -a-library (найдите spark- xml в разделе пакета maven / spark и импортируйте ее )
  2. Присоедините библиотеку к вашему кластеру https://docs.databricks.com/user-guide/libraries.html#attach -a-library-to-a-cluster
  3. Используйте следующий код в своей записной книжке, чтобы прочитать xml file, где "note" - это root файла xml.

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

Пожалуйста, укажите: Как я могу прочитать XML file Azure Databricks Spark .

Объедините эти документы, я думаю, вы сможете разобраться в своей проблеме. Я не очень разбираюсь в Azure блоках данных, извините, что не могу проверить вас.

Надеюсь, это поможет.

...