2

通常在 Azure/AWS 上的 Databricks 上,要读取存储在 Azure Blob/S3 上的文件,我会挂载存储桶或 Blob 存储,然后执行以下操作:

如果使用 Spark

df = spark.read.format('csv').load('/mnt/my_bucket/my_file.csv', header="true")

如果直接使用 pandas,请将 /dbfs 添加到路径中:

df = pd.read_csv('/dbfs/mnt/my_bucket/my_file.csv')

我正在尝试使用 GCP 在托管版本的 Databricks 上做完全相同的事情,虽然我成功地安装了我的存储桶并使用 Spark 读取它,但我无法直接使用 Pandas 执行此操作,添加 /dbfs 不起作用我得到一个No such file or directory: ...错误

你们中有人遇到过类似的问题吗?我错过了什么吗?

当我这样做的时候

%sh 
ls /dbfs

尽管我可以在 UI 中看到带有我安装的存储桶和文件的 dbfs 浏览器,但它什么也不返回

谢谢您的帮助

4

1 回答 1

5

它记录在尚未发布的功能列表中

DBFS 访问本地文件系统(FUSE 挂载)。对于 DBFS 访问,可以使用 Databricks dbutils 命令、Hadoop 文件系统 API(例如 %fs 命令)以及 Spark 读写 API。如有任何问题,请联系您的 Databricks 代表。

因此,在使用 Pandas 阅读之前,您需要将文件复制到本地磁盘:

dbutils.fs.cp("/mnt/my_bucket/my_file.csv", "file:/tmp/my_file.csv")
df = pd.read_csv('/tmp/my_file.csv')
于 2021-06-22T17:30:29.457 回答