我正在 Databricks 上编写 Python 代码来处理一些数据和输出图。我希望能够将这些图形作为图片文件(.png 或其他东西,格式并不重要)保存到 DBFS。
代码:
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.show()
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
plt.savefig("/FileStore/my-file.png")
Run Code Online (Sandbox Code Playgroud)
[Errno 2] 没有那个文件或目录:'/FileStore/my-file.png'
fig = plt.gcf()
dbutils.fs.put("/dbfs/FileStore/my-file.png", fig)
Run Code Online (Sandbox Code Playgroud)
TypeError: 有错误的类型 - (,) 是预期的。
经过一些研究,我认为 fs.put 只有在您想保存文本文件时才有效。
运行上面的代码plt.show()会给你一个条形图 - 我希望能够将条形图作为图像保存到 DBFS。任何帮助表示赞赏,提前致谢!
有没有办法在不将数据帧转换为熊猫的情况下从 Spark 数据帧绘制信息?
做了一些在线研究,但似乎找不到方法。我需要将这些图自动保存为 .pdf,因此使用 databricks 中的内置可视化工具将不起作用。
现在,这就是我正在做的事情(例如):
# df = some Spark data frame
df = df.toPandas()
df.plot()
display(plt.show())
Run Code Online (Sandbox Code Playgroud)
我想生成折线图、直方图、条形图和散点图,而无需将我的数据框转换为 Pandas 数据框。谢谢!