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

使用dbutils.fs.cp复制文件时目标路径生成冗余文件夹问题咨询

解决dbutils.fs.cp复制文件时自动创建父目录的问题

问题原因

当使用dbutils.fs.cp复制单个文件,且目标路径以/结尾(表示目录)时,命令会默认保留源文件的父目录结构,将源文件的父文件夹(此处为StudentA)一并复制到目标目录下,导致文件被放在/mnt/Testing_1/StudentA/Test.csv,而非预期的/mnt/Testing_1/Test.csv。

解决方案

方案1:显式指定目标文件的完整路径

直接在目标路径中包含文件名,而非仅指定目录:

dbutils.fs.cp("/mnt/testing/StudentA/Test.csv", "/mnt/Testing_1/Test.csv")

执行后会直接将Test.csv复制到/mnt/Testing_1/目录下,不会创建额外的StudentA文件夹。

方案2:动态获取文件名拼接目标路径

如果需要批量处理文件或不想硬编码文件名,可以通过字符串操作提取源文件名,再拼接目标路径:

source_file = "/mnt/testing/StudentA/Test.csv"
# 提取文件名
file_name = source_file.split("/")[-1]
# 拼接目标路径
target_file = f"/mnt/Testing_1/{file_name}"
# 执行复制
dbutils.fs.cp(source_file, target_file)

补充说明

dbutils.fs.cp的这个行为和Unix系统的cp命令存在差异:Unix中cp source_file target_dir/会直接将文件放入目标目录,但Databricks的dbutils.fs.cp会保留源文件的相对父目录层级,因此必须显式指定目标文件名才能达到预期效果。

内容的提问来源于stack exchange,提问作者Deepak Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 05:24:54