提问者:小点点

从社区版中的DBFS位置遍历数据库中pyspark中的文件


我想遍历数据库中DBFS位置可用的文件。但它抛出一个错误,说'org. apache.park.sql.Analysis Exception:Path不存在:'这是我尝试的代码:

import os
from pyspark.sql.types import *
fileDirectory = '/dbfs/FileStore/tables/'
for fname in os.listdir(fileDirectory):
    df_app = sqlContext.read.format("csv").\
        option("header", "true"). \`enter code here`
        load(fileDirectory + fname)

错误是

分析异常:路径不存在:dbfs:/dbfs/FileStore/table/Dept_data. csv;

你能帮忙吗?

提前感谢


共1个答案

匿名用户

当使用DataFrameReaders(即:spark.read…)读取数据库中的文件时,路径直接从DBFS读取,其中FileStore表目录实际上是:dbfs:/FileStore/table/。关键是,使用Pythonos库,DBFS是另一个路径文件夹(这就是为什么您可以使用 /dbfs/FileStore/tables访问它)。因此,使用这样的东西应该可以正常工作:

import os
from pyspark.sql.types import *
fileDirectory = '/dbfs/FileStore/tables/'
dir = '/FileStore/tables/'
for fname in os.listdir(fileDirectory):
    df_app = sqlContext.read.format("json").option("header", "true").load(dir + fname)

此外,您可以仔细检查dbutils命令(https://docs.databricks.com/dev-tools/databricks-utils.html#dbutilsfsls-command),这些命令可以帮助您直接操作DBFS(而无需处理dbfs内部实现)。希望这有所帮助