You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure Databricks Notebook单个单元格输出保存到文件?

保存Azure Databricks Notebook单个单元格输出到文件的可行方法

以下是几种可靠的实现方式,根据你的输出类型选择对应方案:

1. 输出为Spark DataFrame时直接写入文件

如果单元格输出是Spark DataFrame,可直接利用Spark的write API将数据持久化到DBFS(或挂载的云存储):

# 假设你的DataFrame名为df,以CSV格式写入DBFS
df.write.format("csv")\
  .option("header", "true")\
  .mode("overwrite")\
  .save("/dbfs/your/target/path/output.csv")

# 若需Parquet格式(更高效的列存格式)
df.write.format("parquet")\
  .mode("overwrite")\
  .save("/dbfs/your/target/path/output.parquet")

2. 捕获文本类输出(如print结果、计算值)

如果输出是普通文本或控制台打印内容,可通过重定向标准输出捕获后写入文件:

import sys
from io import StringIO

# 保存原始输出流
original_stdout = sys.stdout
# 创建缓冲区捕获输出
captured_out = StringIO()
sys.stdout = captured_out

# 这里是你要执行的单元格代码(示例)
print("单元格的输出内容")
calc_result = 100 * 5
print(f"计算结果:{calc_result}")

# 恢复原始输出流
sys.stdout = original_stdout
# 获取捕获的文本
output_content = captured_out.getvalue()

# 写入DBFS文件
with open("/dbfs/your/target/path/output.txt", "w", encoding="utf-8") as f:
    f.write(output_content)

3. 保存可视化输出(如Matplotlib图表)

如果单元格输出是图表,可直接将图表保存为图片文件:

import matplotlib.pyplot as plt

# 生成示例图表
plt.bar(["A", "B", "C"], [20, 35, 15])
plt.title("示例柱状图")

# 保存到DBFS
plt.savefig("/dbfs/your/target/path/plot.png")
plt.close()

关键注意事项

  • 所有路径优先使用/dbfs/开头,对应Databricks文件系统的本地挂载路径,写入后数据会持久化(集群重启不会丢失);若写本地路径(/tmp/等),仅当前集群生命周期内有效。
  • 若需将文件导出到本地电脑,可通过Databricks UI的DBFS浏览器下载,或用dbutils.fs.cp将文件复制到挂载的云存储后再下载。

内容的提问来源于stack exchange,提问作者Chand Prem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 03:52:05