You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks工作区中使用Pandas正确读取CSV文件的方法

在Databricks中正确加载CSV文件的解决方案

问题原因

Databricks工作区的文件并不直接映射到driver节点的本地文件系统,使用pandas默认的相对路径读取会找不到文件,必须使用Databricks文件系统(DBFS)的正确路径或者工作区路径。

解决方法

1. 先确认文件的真实路径和名称

在Notebook中执行以下命令,查看目标文件的真实路径和文件名(解决目录树不显示扩展名的问题):

# 替换为你的data文件夹所在的工作区路径,比如"/Workspace/Users/你的邮箱/data"
dbutils.fs.ls("/Workspace/你的工作区路径/data")

执行后会列出该文件夹下的所有文件,你可以看到文件的真实名称(是否带扩展名)和完整路径。

2. 方法一:使用完整DBFS路径直接读取

将步骤1中获取的路径加上/dbfs前缀,作为pandas的读取路径:

import pandas as pd
# 替换为实际的DBFS路径
items = pd.read_csv('/dbfs/Workspace/你的工作区路径/data/fastFasionItemsDim.csv', sep='|')

3. 方法二:自动获取当前Notebook路径拼接文件(适配动态位置)

如果Notebook可能移动位置,可通过代码自动获取当前目录路径,避免手动修改路径:

import pandas as pd
from pathlib import Path

# 获取当前Notebook的工作区路径
notebook_path = dbutils.notebook.entry_point.getDbutils().notebook().getContext().notebookPath().get()
# 提取Notebook所在的父目录
notebook_dir = str(Path(notebook_path).parent)
# 转换为DBFS可直接访问的路径
dbfs_file_path = f"/dbfs{notebook_dir}/data/fastFasionItemsDim.csv"

items = pd.read_csv(dbfs_file_path, sep='|')

4. 方法三:使用Spark读取后转Pandas(推荐分布式场景)

如果数据量较大,更推荐用Spark读取(适配Databricks分布式环境),再转为Pandas DataFrame:

# 直接使用工作区路径读取,无需/dbfs前缀
spark_df = spark.read.csv('/Workspace/你的工作区路径/data/fastFasionItemsDim.csv', 
                          sep='|', 
                          header=True,  # 如果文件有表头
                          inferSchema=True)
# 转换为Pandas DataFrame
items = spark_df.toPandas()

注意事项

  • 若步骤1中发现文件真实名称不带扩展名(比如fastFasionItemsDim),则所有路径中的文件名需去掉.csv后缀。
  • 确认当前Notebook拥有该data文件夹的读取权限,若为共享文件夹需联系管理员配置权限。

内容的提问来源于stack exchange,提问作者juuso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:32:04