Azure Databricks读取CSV文件提示路径不存在的问题咨询
Azure Databricks读取CSV文件路径错误解决方案
问题概况
已将CSV文件上传至Azure Databricks集群,执行ls dbfs:/user/hive/warehouse/aw_product命令可确认文件存在,但使用Pandas或Spark读取时,收到路径不存在的错误。
原错误代码
Pandas代码
df = pd.read_csv("/dbfs/user/hive/warehouse/aw_product.csv") df.head()
Spark代码
spdf = sqlContext.read.format("csv").option("header","true").option("inferschema","true").load("dbfs:/user/hive/warehouse/aw_product.csv")
报错信息
AnalysisException: [PATH_NOT_FOUND] Path does not exist: dbfs:/user/hive/warehouse/aw_product.csv.
问题原因
你执行ls的路径是目录dbfs:/user/hive/warehouse/aw_product,但代码中错误地将路径指向了不存在的文件aw_product.csv——实际CSV文件存储在aw_product这个目录下,而非该路径下的直接文件。
正确读取方法
1. Pandas读取
Pandas需通过DBFS本地挂载路径访问文件,需指定目录下的具体CSV文件名,或用通配符读取目录内所有CSV文件:
- 读取单个文件(替换为目录内实际文件名,如
part-00000.csv):
import pandas as pd df = pd.read_csv("/dbfs/user/hive/warehouse/aw_product/part-00000.csv") df.head()
- 读取目录内所有CSV文件:
df = pd.read_csv("/dbfs/user/hive/warehouse/aw_product/*.csv")
2. Spark读取
Spark直接支持DBFS路径,推荐读取整个目录(自动合并目录内所有CSV文件),也可指定单个文件:
- 读取整个目录(推荐):
spdf = sqlContext.read.format("csv")\ .option("header", "true")\ .option("inferschema", "true")\ .load("dbfs:/user/hive/warehouse/aw_product/")
- 读取单个具体文件:
spdf = sqlContext.read.format("csv")\ .option("header", "true")\ .option("inferschema", "true")\ .load("dbfs:/user/hive/warehouse/aw_product/part-00000.csv")
验证步骤
在Notebook中执行以下命令,查看目录内的具体文件名,确保路径与文件名匹配:
%fs ls dbfs:/user/hive/warehouse/aw_product
内容的提问来源于stack exchange,提问作者Tallion 22
相关产品推荐
相关产品推荐

