从数据湖重命名 Azure Databricks 中的文件时出现问题

Problem when rename file in Azure Databricks from a data lake

我正在尝试使用“rename ()”函数通过“import os”库在 Azure Databricks 中用 Python 重命名一个文件,这确实非常简单,但是当在 Databricks 中执行此操作我无法到达我的文件所在的路径。在数据湖中,但是执行命令“% fs ls path_file”是的,我看到了,我什至可以读取它并使用 pyspark 毫无问题地处理它。

我留下我的代码示例:

import os
old_name = r"/mnt/datalake/path/part-00000-tid-1761178-3f1b0942-223-1-c000.csv"
new_name = r"/mnt/datalake/path/example.csv"

os.rename(old_name, new_name)

上面的 returns 一个找不到路径或文件的错误,但是“ls”命令执行相同的路径没有问题。

另一方面,我尝试用pySpark重命名文件,但它使用了一个我没有安装的hadoop库(org.apache.hadoop.conf.Configuration),我无法在生产环境中安装它.. .

我会错过什么?

如果您使用的是 os.rename,则需要将文件引用为 /dbfs/mnt/...,因为您使用的是 local API to access DBFS

但实际上,使用 dbutils.fs.mv 进行文件重命名可能会更好:

old_name = r"/mnt/datalake/path/part-00000-tid-1761178-3f1b0942-223-1-c000.csv"
new_name = r"/mnt/datalake/path/example.csv"

dbutils.fs.mv(old_name, new_name)