Python 3.x 如何从Azure DataLake Gen2访问XML文件并将其转换为Azure DataRicks中的数据帧?

Python 3.x 如何从Azure DataLake Gen2访问XML文件并将其转换为Azure DataRicks中的数据帧?,python-3.x,azure-functions,azure-data-lake,azure-databricks,Python 3.x,Azure Functions,Azure Data Lake,Azure Databricks,我们需要访问位于Azure Data Lake Gen2中的XML文件,并将其转换为如下所示的数据帧 示例XML数据: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <ns2:getProjectsResponse xmlns:ns2="http://www.log

我们需要访问位于Azure Data Lake Gen2中的XML文件,并将其转换为如下所示的数据帧

示例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>

P10001
项目1
P10002
项目2
P10003
项目3
预期数据帧输出:


有人能帮我吗。

首先,你需要学习从Azure data Lake Gen2到Azure Datatricks读取数据

有许多教程可供您学习:

  • 。这篇博客文章是关于将数据从Blob存储导入Azure DataRicks的
  • :这篇文章解释了如何 通过使用DBFS装载存储或直接装载存储来访问Azure Blob存储 使用API
  • 其次,关于xml数据类型,您需要使用@Axel R在注释中提供的用法

  • 将spark xml库导入您的工作区 (在maven/spark包部分中搜索spark xml并导入它)
  • 将库连接到群集
  • 使用笔记本中的以下代码读取xml文件,其中 “note”是xml文件的根
  • xmldata=spark.read.format('xml')。选项(“rootTag”,“note”).load('dbfs:/mnt/mydatafolder/xmls/note.xml')

    请参考:

    结合这些文件,我想你可以找出你的问题。我对Azure databricks了解不多,很抱歉我不能为您测试


    希望这有帮助。

    看看spark xml库:它可以很容易地安装在Databrick上,并允许您操作xml模式。