根据我的研究,您无法将 Matplotlib 输出直接保存到 Azure Blob 存储。
您可以按照以下步骤将 Matplotlib 输出保存到 Azure Blob 存储:
Step 1:您需要首先将其保存到 Databrick 文件系统 (DBFS),然后将其复制到 Azure Blob 存储。
将 Matplotlib 输出保存到 Databricks 文件系统 (DBFS):我们使用以下命令将输出保存到 DBFS:plt.savefig('/dbfs/myfolder/Graph1.png')
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'fruits':['apple','banana'], 'count': [1,2]})
plt.close()
df.set_index('fruits',inplace = True)
df.plot.bar()
plt.savefig('/dbfs/myfolder/Graph1.png')
Step 2:将文件从 Databricks 文件系统复制到 Azure Blob 存储。
有两种方法可将文件从 DBFS 复制到 Azure Blob 存储。
方法 1:直接访问 Azure Blob 存储
通过设置“Spark.conf.set”直接访问 Azure Blob 存储,并将文件从 DBFS 复制到 Blob 存储。
spark.conf.set("fs.azure.account.key.< Blob Storage Name>.blob.core.windows.net", "<Azure Blob Storage Key>")
使用 dbutils.fs.cp 将文件从 DBFS 复制到 Azure Blob 存储:
dbutils.fs.cp('dbfs:/myfolder/Graph1.png', 'wasbs://<Container>@<Storage Name>.blob.core.windows.net/Azure')
方法 2:将 Azure Blob 存储容器挂载到 DBFS
您可以将 Blob 存储容器或容器内的文件夹装载到 Databricks 文件系统 (DBFS)。挂载是指向 Blob 存储容器的指针,因此数据永远不会在本地同步。
dbutils.fs.mount(
source = "wasbs://[email protected] /cdn-cgi/l/email-protection/Azure",
mount_point = "/mnt/chepra",
extra_configs = {"fs.azure.sas.sampledata.chepra.blob.core.windows.net":dbutils.secrets.get(scope = "azurestorage", key = "azurestoragekey")})
使用 dbutils.fs.cp 将文件复制到 Azure Blob 存储容器:
dbutils.fs.cp('dbfs:/myfolder/Graph1.png', '/dbfs/mnt/chepra')
通过执行方法 1 或方法 2,您可以成功将输出保存到 Azure Blob 存储。
欲了解更多详情,请参阅“Databricks - Azure Blob 存储 https://docs.databricks.com/data/data-sources/azure/azure-storage.html".
希望这可以帮助。如果您还有任何疑问,请告诉我们。