从社区版中的 DBFS 位置循环访问 pyspark 中的数据砖中的文件



我想遍历Databricks中DBFS位置的可用文件。 但它抛出了一个错误说 'org.apache.spark.sql.AnalysisException: 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)

错误是

org.apache.spark.sql.AnalysisException: Path 不存在: dbfs:/dbfs/FileStore/tables/Dept_data.csv;

你能帮忙吗?

提前致谢

当使用 DataFrameReader 读取 Databricks 中的文件时(即:spark.read...(,路径直接从 DBFS 读取,其中 FileStore 表目录实际上是:dbfs:/FileStore/tables/。关键是,使用 Python os 库,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 内部实现(。 希望这有帮助

最新更新