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

标签 python databricks azure-databricks

来自 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)

但是,我收到错误:

类型错误:“/mnt/adls2/demo/target/”的类型错误 - 需要类 bool。

有人可以告诉我如何解决这个问题吗?我认为在最初使用命令 dbutils.fs.rm

复制文件后删除该文件会很简单

最佳答案

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

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

无论如何,如果您想使用您的代码,请查看 dbutils doc :

rm(dir: String, recurse: boolean = false): boolean -> Removes a file or directory

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

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)

关于python - 使用 dbutils 在 Databricks 中上传后从目录中删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54091812/

相关文章:

azure - 当只有一个事件失败时,是否有一种方法可以防止 Azure DataFactory 将管道报告为失败?

azure - 如何将databricks笔记本的输出值作为字符串传递给数据工厂?

python - 检查Databricks中是否存在该路径

python - Python 中的参数错误

pyspark - Hyperopt 无法使用跟踪 URI : databricks 执行 mlflow.end_run()

azure - 无法在 Databricks 中为 ADLS Gen2 创建挂载点

python - Databricks 文件系统 - 根据日期复制文件

python - 从数据库中收集数据,函数与类

python - 'TreeDict'(或 TreeMap )在实践中有什么用?

Python - 正则表达式首先找到第二个匹配项