使用 dbutils 在 Databricks 中上传后从目录中删除文件

2024-05-03

StackOverflow 的一位非常聪明的人帮助我将文件从 Databricks 复制到目录中:复制文件 https://stackoverflow.com/questions/54007074/how-to-truncate-and-or-use-wildcards-with-databrick

我使用相同的原理在复制文件后删除文件,如链接所示:

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


如果要删除以下路径中的所有文件:'/mnt/adls2/demo/target/',有一个简单的命令:

dbutils.fs.rm('/mnt/adls2/demo/target/', True)

无论如何,如果你想使用你的代码,请看一下dbutils 文档 https://docs.databricks.com/user-guide/dev-tools/dbutils.html:

rm(dir: String, recurse: boolean = false): boolean -> 删除文件或目录

该函数的第二个参数应为布尔值,但您的代码具有带路径的字符串:

dbutils.fs.rm(files[i].path, '/mnt/adls2/demo/target/' + file)

所以你的新代码可以如下:

for i in range (0, len(files)):
    file = files[i].name
        if now in file:  
            dbutils.fs.rm(files[i].path + file, True)
            print ('copied     ' + file)
        else:
            print ('not copied ' + file)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dbutils 在 Databricks 中上传后从目录中删除文件 的相关文章

随机推荐