将 Matplotlib 输出保存到 Databricks 上的 Blob 存储

2024-05-08

我正在尝试使用此处提供的方法将 matplotlib 图形写入 Azure blob 存储:将 Matplotlib 输出保存到 Databricks 上的 DBFS https://stackoverflow.com/questions/57203817/saving-matplotlib-output-to-dbfs-on-databricks/60188964?noredirect=1#comment106459449_60188964.

但是,当我将代码中的路径替换为

path = 'wasbs://[email protected] /cdn-cgi/l/email-protection/'

我收到这个错误

[Errno 2] 没有这样的文件或目录:'wasbs://[电子邮件受保护] /cdn-cgi/l/email-protection/'

我不明白这个问题...


根据我的研究,您无法将 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".

希望这可以帮助。如果您还有任何疑问,请告诉我们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Matplotlib 输出保存到 Databricks 上的 Blob 存储 的相关文章

  • matplotlib 后端对渲染格式有什么限制?

    我对 matplotlib 使用的后端在确定可以呈现哪些格式方面所扮演的角色感到困惑 例如 文件说 http matplotlib org faq usage faq html what is a backend agg 后端生成 PNG
  • python matplotlib 使用按钮事件添加和删除图形中的文本

    我试图在调用button press event 时将文本添加到鼠标指针位置的图形中 并在调用button release event 时将其删除 我已成功添加文本 但无法将其删除 这是我使用的代码的一部分 def onclick even
  • Tkinter:通过多处理启动进程会创建不需要的新窗口

    我计划围绕数值模拟编写一个小型 GUI 这就是我现在使用 Tkinter 的原因 模拟应在单独的进程中从 GUI 启动 为了玩一下 我定义了一个函数 random process 来生成成对的 randn 数字 这应该是一个真正的模拟过程
  • 当传递命名参数时,matplotlib 不会绘图

    有人可以解释这种行为吗 import matplotlib pyplot as plt plt plot x 0 05 0 1 0 15 y 102 211 393 plt show import matplotlib pyplot as
  • seaborn 箱线图的子图

    我有一个像这样的数据框 import seaborn as sns import pandas as pd pylab inline df pd DataFrame a one one two two one two one one one
  • 为什么 matplotlib 默认不保存整个图形?

    这可能是几乎每个使用 matplotlib 的人都会遇到的问题 如果您生成一个图形 通常包含轴标签和图例 并使用默认设置保存它 您将获得裁剪后的图像 演示代码 import matplotlib pyplot as plt def plot
  • 如何在seaborn热图标签中使用科学计数法?

    我正在尝试在 python 中使用seaborn 获取热图 不幸的是 即使数字非常大 它也没有使用科学记数法 我想知道是否有任何简单的方法可以转换为科学记数法或任何其他合理的格式 这是显示问题的一段代码 import seaborn as
  • 避免“散点/点/蜂群”图中的数据点重叠

    使用绘制点图时matplotlib 我想偏移重叠的数据点以使它们全部可见 例如 如果我有 CategoryA 0 0 3 0 5 CategoryB 5 10 5 5 10 我想要每一个CategoryA 0 数据点并排设置 而不是彼此重叠
  • 删除流图(matplotlib)而不清除图形

    到目前为止我总是在这里找到帮助 我长期以来一直在寻找问题的解决方案 现在我可能已经失明了 我希望你能帮助我解决这个问题 我已经构建了一个 python 程序 可以绘制方向场 颤动 或流图 由于图表中可能还有其他数据 例如轨迹 我不能只是清除
  • matplotlib xkcd 无法在 Mac 上运行

    我在可视化 matplotlib xkcd 图时遇到小问题 通过简单地尝试执行上找到的示例matplotlib org http matplotlib org examples showcase xkcd html 当我执行 xkcd py
  • 如何在 Seaborn 中的热图轴上表达类

    我使用 Seaborn 创建了一个非常简单的热图 显示相似性方阵 这是我使用的一行代码 sns heatmap sim mat linewidths 0 square True robust True sns plt show 这是我得到的
  • Matplotlib loglog 的错误刻度/标签(双轴)

    我正在使用 matplotlib 创建对数图 如下图所示 默认刻度选择得很糟糕 充其量是这样 右边的 y 轴甚至根本没有 在线性等效中确实如此 而两个 x 轴都只有一个 有没有办法获得合理数量的带有标签的刻度 without为每个情节手动指
  • 将自定义误差线添加到 seaborn regplot 和 residplot

    有没有一种方法可以将自定义错误栏添加到seaborn regplot和residplot中 就像使用yerr对matplotlib错误栏所做的那样 例子在这里 如果我只是添加 yrr 参数就会发生错误 import seaborn as s
  • matplotlib 图形的乳胶渲染文本中的中心标题

    我想将 Matplotlib 图形的标题居中 其中在渲染 LaTeX 样式时包含换行符返回 在标题中间插入 Latex 的简单返回代码可以工作 但不会使其居中 从而导致换行符从第一行尴尬地移动 from matplotlib import
  • Pandas 堆积条形图中元素的排序

    我正在尝试绘制有关某个地区 5 个地区的家庭在特定行业赚取的收入比例的信息 我使用 groupby 按地区对数据框中的信息进行排序 df df orig groupby District Portion of income value co
  • 更改 3D 图形颜色 (matplotlib)

    我使用以下代码在 matplotlib 中绘制了 3D 图形 Previously defines lists of data to plot fig plt figure ax fig add subplot 111 projection
  • 使用 matplotlib 滑块小部件更改图像中的 clim

    我几乎没有使用 python 的经验 但我正在尝试创建一个简单的脚本 该脚本加载图像并使用滑块小部件来调整颜色条的最小值和最大值 并相应地重新绘制图像数据 我正在尝试遵循这个例子 http matplotlib sourceforge ne
  • 错误:未找到线条魔术函数“%matplotlib”

    我刚刚按照 anaconda 的说明在 Mac MacOS 10 7 5 上安装了 IPythonhttp ipython org install html http ipython org install html 没有明显的错误 我现在
  • Seaborn 将 xticks 从 float 更改为 int

    我正在绘制一个图表 其中seaborn为sns pylab为plt plt figure figsize 10 10 sns barplot y whatever y x whatever x data mydata plt xticks
  • 来自 pandas 数据帧的烛台图,用日期替换索引

    此代码给出了带有移动平均线的烛台图 但 x 轴位于索引中 我需要 x 轴位于日期中 需要做什么改变 import numpy as np import pandas as pd import matplotlib pyplot as plt

随机推荐