从数据湖重命名 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)
我正在尝试使用“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)