如何从 Azure Data Lake Gen2 访问 XML 文件并将其转换为 Azure Databricks 中的数据框?
How to access XML file from Azure Data Lake Gen2 and transform it into data-frame in 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.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>
预期数据帧输出:
谁能帮我解决这个问题。
首先,您需要学习从 Azure Data Lake Gen2 读取数据到 Azure databricks。
有很多教程可供您学习:
- Databricks: Importing data from a Blob storage。这篇博文是关于将数据从 Blob 存储导入到 Azure databricks。
- Databricks Azure Blob Storage:本文介绍了如何
通过使用 DBFS 或直接挂载存储来访问 Azure Blob 存储
使用 API。
其次,关于 xml 数据类型,您需要使用 @Axel R 在评论中提供的 databricks spark-xml library 。
- 将 spark-xml 库导入您的工作区
https://docs.databricks.com/user-guide/libraries.html#create-a-library
(在maven/spark包部分搜索spark-xml并导入)
- 将库附加到您的集群
https://docs.databricks.com/user-guide/libraries.html#attach-a-library-to-a-cluster
- 在笔记本中使用以下代码读取xml文件,其中
"note" 是 xml 文件的根。
xmldata = spark.read.format('xml').option("rootTag","note").load('dbfs:/mnt/mydatafolder/xmls/note.xml')
请参考:.
结合这些文件,我想你可以解决你的问题。我对 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.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>
预期数据帧输出:
谁能帮我解决这个问题。
首先,您需要学习从 Azure Data Lake Gen2 读取数据到 Azure databricks。
有很多教程可供您学习:
- Databricks: Importing data from a Blob storage。这篇博文是关于将数据从 Blob 存储导入到 Azure databricks。
- Databricks Azure Blob Storage:本文介绍了如何 通过使用 DBFS 或直接挂载存储来访问 Azure Blob 存储 使用 API。
其次,关于 xml 数据类型,您需要使用 @Axel R 在评论中提供的 databricks spark-xml library 。
- 将 spark-xml 库导入您的工作区 https://docs.databricks.com/user-guide/libraries.html#create-a-library (在maven/spark包部分搜索spark-xml并导入)
- 将库附加到您的集群 https://docs.databricks.com/user-guide/libraries.html#attach-a-library-to-a-cluster
- 在笔记本中使用以下代码读取xml文件,其中 "note" 是 xml 文件的根。
xmldata = spark.read.format('xml').option("rootTag","note").load('dbfs:/mnt/mydatafolder/xmls/note.xml')
请参考:
结合这些文件,我想你可以解决你的问题。我对 Azure databricks 了解不多,很抱歉无法为您测试。
希望对您有所帮助。