我正在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()
我尝试过的事情
plt.savefig("/FileStore/my-file.png")
[Errno 2]没有这样的文件或目录:'/FileStore/my-file.png'
fig = plt.gcf()
dbutils.fs.put("/dbfs/FileStore/my-file.png", fig)
TypeError:类型错误-预期为(,)。
经过研究,我认为fs.put仅在您要保存文本文件时有效。
使用plt.show()
运行以上代码将为您提供条形图-我希望能够将条形图作为图像保存到DBFS。感谢您的任何帮助,谢谢!!
答案 0 :(得分:2)
更简单的方法,只需使用matplotlib.pyplot。修复dbfs路径:
示例
.findall(el, namespaces)
答案 1 :(得分:1)
您可以通过将图形保存到内存中,然后使用Python local file APIs写入DataBricks文件系统(DBFS)来实现。
示例:
import matplotlib.pyplot as plt
from io import BytesIO
# Create a plt or fig, then:
buf = BytesIO()
plt.savefig(buf, format='png')
path = '/dbfs/databricks/path/to/file.png'
# Make sure to open the file in bytes mode
with open(path, 'wb') as f:
# You can also use Bytes.IO.seek(0) then BytesIO.read()
f.write(buf.getvalue())