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

Azure Databricks用户仓库写入CSV失败及路径报错问题咨询

问题原因与解决方法

核心原因

  1. 路径映射不匹配:你用pandas.to_csv写入的是集群节点的本地临时文件系统,而非Databricks Workspace中的Git仓库目录。集群本地路径和Workspace仓库路径没有直接关联,所以即使无报错,文件也不会出现在仓库里。
  2. 目录不存在或路径格式错误:直接使用/Users/xxx/repo_one/repo_two这类Workspace路径时,集群无法识别该路径(因为集群默认访问DBFS或本地节点存储),导致提示目录不存在。

解决方法

方法1:先写入DBFS,再同步到仓库

  1. 将CSV写入DBFS的可访问路径(通过集群本地挂载点/dbfs访问):
    df_pandas.to_csv('/dbfs/FileStore/test.csv', index=False, header=False)
    
  2. 使用dbutils将DBFS中的文件复制到Workspace仓库目录:
    dbutils.fs.cp("dbfs:/FileStore/test.csv", "/Users/xxx/repo_one/repo_two/test.csv")
    
  3. 此时文件会出现在你的Git仓库目录中,可直接提交Git变更。

方法2:通过Spark DataFrame直接写入Workspace仓库

如果需要直接写入仓库,可将pandas数据转为Spark DataFrame后写入(Spark支持直接访问Workspace路径):

# 转换pandas DataFrame为Spark DataFrame
spark_df = spark.createDataFrame(df_pandas)

# 写入单个CSV文件(coalesce(1)合并分区为1)
spark_df.coalesce(1).write.mode("overwrite").option("header", "false").csv("/Workspace/Users/xxx/repo_one/repo_two/test_temp")

# 将生成的分区文件重命名为目标文件名
import os
# 列出临时目录下的CSV文件
csv_files = [f for f in os.listdir('/dbfs/Workspace/Users/xxx/repo_one/repo_two/test_temp') if f.endswith('.csv')]
if csv_files:
    # 重命名文件
    dbutils.fs.mv(f"/Workspace/Users/xxx/repo_one/repo_two/test_temp/{csv_files[0]}", "/Workspace/Users/xxx/repo_one/repo_two/test.csv")
    # 删除临时目录
    dbutils.fs.rm("/Workspace/Users/xxx/repo_one/repo_two/test_temp", recurse=True)

方法3:先创建目标目录再写入

如果提示目录不存在,先通过dbutils创建Workspace仓库目录:

dbutils.fs.mkdirs("/Workspace/Users/xxx/repo_one/repo_two")

之后再使用方法1或方法2写入文件。

内容的提问来源于stack exchange,提问作者Gael Bosc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:45:09