Databricks中Spark读取DBFS文件报错:路径不存在求助
解决Databricks中Spark读取CSV文件时的Path does not exist错误
你遇到的AnalysisException: Path does not exist错误,核心原因是指定的DBFS路径下没有目标文件,或者路径填写错误。以下是具体的排查和解决步骤:
1. 验证目标路径下是否存在文件
先通过dbutils命令检查dbfs:/databricks/driver/目录下的文件列表,确认目标CSV是否存在:
dbutils.fs.ls("dbfs:/databricks/driver/")
如果返回结果中没有reported-crimes.csv,说明文件并未上传到该路径。
2. 定位文件的实际存储路径
Databricks中常见的文件上传路径有两种:
- 通过笔记本会话上传到Driver:文件会出现在
dbfs:/databricks/driver/ - 通过Workspace/DBFS UI上传:文件通常存储在
dbfs:/FileStore/tables/或自定义路径下
可以检查这些常见路径:
dbutils.fs.ls("dbfs:/FileStore/tables/")
找到reported-crimes.csv后,复制它的完整DBFS路径。
3. 修正代码中的读取路径
将代码里的路径替换为文件实际所在的DBFS路径,例如如果文件在dbfs:/FileStore/tables/reported-crimes.csv,修改后的代码如下:
方法一修改后:
from pyspark.sql.functions import to_timestamp,col,lit rc = spark.read.csv('dbfs:/FileStore/tables/reported-crimes.csv',header=True).withColumn('Date',to_timestamp(col('Date'),'MM/dd/yyyy hh:mm:ss a')).filter(col('Date') <= lit('2018-11-11')) rc.show(5)
方法二修改后:
df = spark.read\ .option("header", "true")\ .option("inferSchema", "true")\ .csv("dbfs:/FileStore/tables/reported-crimes.csv")
4. 检查文件权限
如果路径正确但仍报错,确认当前Databricks用户拥有该文件的读取权限:在Workspace中右键目标文件,选择"Permissions"查看并调整权限设置。
5. 重新上传文件(可选)
如果找不到文件,重新通过Databricks UI上传:点击页面右上角的"Upload"按钮,选择本地的reported-crimes.csv,上传完成后复制生成的DBFS路径到代码中。
内容的提问来源于stack exchange,提问作者swaroop reddy
相关产品推荐
相关产品推荐

