python-3.x - 如何从 Azure Data Lake Gen2 访问 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:从 Blob 存储导入数据。这篇博文是关于将数据从 Blob 存储导入 Azure Databricks。
- Databricks Azure Blob 存储:本文介绍了如何通过使用 DBFS 或直接使用 API 挂载存储来访问 Azure Blob 存储。
其次,关于 xml 数据类型,您需要使用@Axel R 在评论中提供的databricks spark-xml 库。
- 将 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')
请参考:<a href="https://stackoverflow.com/questions/52728741/how-can-i-read-a-xml-file-azure-databricks-spark">如何读取 XML 文件 Azure Databricks火花。
结合这些文件,我想你可以找出你的问题。我对 Azure Databricks 了解不多,很抱歉无法为您进行测试。
希望这可以帮助。
推荐阅读
- javascript - element.scrollTop 在设置非常大的值时跨浏览器具有不同的行为
- java - Android Studio 上的 startB.setVisibility(View.VISIBLE) 崩溃
- r - geom_area ggplot 用数据子集填充阈值以上
- apache-kafka - Kafka如何保证零停机和零数据丢失?
- python - 我可以在两个程序中使用相同的 google vision api json 文件进行 OCR 转换吗?
- git - git 是否应该跟踪数据源 xml 和元文件?
- stored-procedures - 在存储过程的 SELECT STATEMENT 中使用 IF ELSE CONDITION
- android - 在 Oreo 中以编程方式杀死一个电话
- android - 当我在 Android 上使用 NFC 读卡器和在 PC 上使用 RFID 读卡器时,卡 ID 不同
- angular - 使用 AngularFire2 在 Angular 5 应用程序中读取和更新以下格式的 Fire-base 数据