【问题标题】:Databricks - FileNotFoundExceptionDatabricks - FileNotFoundException
【发布时间】:2020-02-01 21:25:19
【问题描述】:

对不起,如果这是基本的,我错过了一些简单的东西。我正在尝试运行下面的代码来遍历文件夹中的文件,并将所有以特定字符串开头的文件合并到一个数据框中。所有文件都放在一个湖中。

file_list=[]
path = "/dbfs/rawdata/2019/01/01/parent/"
files  = dbutils.fs.ls(path)
for file in files:
    if(file.name.startswith("CW")):
       file_list.append(file.name)
df = spark.read.load(path=file_list)

# check point
print("Shape: ", df.count(),"," , len(df.columns))
db.printSchema()

这对我来说看起来不错,但显然这里出了点问题。我在这一行遇到错误:
files = dbutils.fs.ls(path)

错误信息如下:

java.io.FileNotFoundException: File/6199764716474501/dbfs/rawdata/2019/01/01/parent does not exist.

路径、文件和其他一切都肯定存在。我尝试了使用和不使用“dbfs”部分。会不会是权限问题?还有什么?我用谷歌搜索了一个解决方案。仍然无法获得牵引力。

【问题讨论】:

    标签: dataframe pyspark apache-spark-sql databricks


    【解决方案1】:

    如果您的父文件夹从“rawdata”开始,请确保您有一个名为“dbfs”的文件夹,路径应为“/rawdata/2019/01/01/parent”或“rawdata/2019/01/01/parent” .

    如果路径不正确会抛出错误。

    【讨论】:

    • 在发布我的问题之前,我实际上已经尝试过了。一定还有一些我在这里看不到的东西。有一个暴露的端点和一个 URL,但我认为这些不属于这里。谢谢。
    • @asher ,你为什么不把路径设置为“/”,看看你是否看到文件夹并一次添加一个文件夹
    • 太棒了!我刚刚尝试过并得到了这个:org.apache.spark.sql.AnalysisException: Unable to infer schema for Parquet。必须手动指定。;
    • 然后,如果我尝试这个 '/rawdata/' 或这个 'rawdata/',我会立即得到与最初相同的错误。
    • @asher,如果您仍然无法在 dbfs 路径中列出文件,添加对 dbutils.fs.ls("/") 的响应可能会有所帮助。如果文件是 Parquet 类型,您应该在文件本身中有架构。如果未在加载命令中指定格式和架构。请注意,如果未指定格式,则加载命令假定文件为 Parquet。
    猜你喜欢
    • 2011-12-10
    • 2013-12-09
    • 2011-06-09
    • 2016-04-05
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多