我想读取存储在Jupyter笔记本中的Azure Blob存储中的XML文件(准确地说是PySpark3)。
我遇到了this tutorial-但是运气不好。
Basi,它抱怨说它无法从azure.storage
行找到from azure.storage.blob import BlobService
。
我尝试过:
! pip install --user azure.storage
没有运气。
有人可以帮忙吗?
任何指导表示赞赏。
谢谢。
答案 0 :(得分:0)
有两种方法可以从Blob中获取xml内容。
解决方案1.通过Azure Storage Explorer获取带有sas令牌的blob URL,然后通过requests
获取xml内容。
图1.1。右键单击a-sample.xml
blob,然后单击选项Get Shared Access Signature
。
图1.2。选择选项UTC
并启用Read
权限,然后选择Create
。
图1.3。 Copy
带有sas令牌的Blob网址。
图1.4。通过requests
安装!pip install requests
并获取xml内容。
import requests
resp = requests.get('<the blob url with sas token copied from Azure Storage Explorer>')
xml_content = resp.text
print(xml_content)
解决方案2。实际上,用于Python的Azure存储SDK名为azure-storage
,因此您可以按照下图执行所需的操作。
图2.1。通过!pip install azure-storage
安装Azure Python存储,并通过代码获取内容。请参考GitHub仓库Azure/azure-storage-python
。
from azure.storage.blob import BlockBlobService
account_name = '<your account name>'
account_key = '<your account key>'
container_name = '<container name>'
blob_name = '< the xml blob name, such as a-sample.xml>'
block_blob_service = BlockBlobService(account_name=account_name, account_key=account_key)
xml_content = block_blob_service.get_blob_to_text(container_name, blob_name).content
print(xml_content)
我在下面的Azure Jupyter Notebook中做了这些操作,它也适用于Azure Databricks。
希望有帮助。