来自 StackOverflow 的一个非常聪明的人帮助我将文件复制到 Databricks 的目录: copyfiles
一旦文件被复制,我将使用相同的原则删除文件,如链接所示:
for i in range (0, len(files)):
file = files[i].name
if now in file:
dbutils.fs.rm(files[i].path,'/mnt/adls2/demo/target/' + file)
print ('copied ' + file)
else:
print ('not copied ' + file)
但是,我收到错误:
TypeError: ‘/mnt/adls2/demo/target/’ 类型错误 - 应为 bool 类。
有人可以让我知道如何解决这个问题。我认为在最初使用命令 dbutils.fs.rm
复制文件后删除文件很简单
原文由 Carltonp 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您有大量文件,以这种方式删除它们可能会花费很多时间。您可以利用 spark parallelism 并行删除文件。我提供的答案是在 scala 中,但可以更改为 python。
您可以使用以下功能检查目录是否存在:
您可以定义一个用于删除文件的函数。您正在对象内部创建此函数,并从 Serializable 类扩展该对象,如下所示:
现在你可以先检查路径是否存在,如果返回true那么你可以在多个任务中调用删除函数来删除文件夹中的文件。