繁体   English   中英

从 Databricks DBFS 读取多个文件

[英]Read multiple files from Databricks DBFS

我最近开始使用 Databricks python 笔记本,无法理解如何从 DBFS 读取多个.csv文件,就像我之前在 Jupyter 笔记本中所做的那样。

我试过了:

path = r'dbfs:/FileStore/shared_uploads/path/' 
all_files = glob.glob(path + "/*.csv")
li = []
for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0, low_memory=False)
    li.append(df)

data = pd.concat(li, axis=0, ignore_index=True)

此代码在 Jupyter 笔记本中运行良好,但在 Databricks 中,我收到此错误: ValueError: No objects to concatenate

我可以使用df = pd.read_csv('dbfs_path/filename.csv')到达此路径中的一个文件

谢谢!

您需要将path更改为r'/dbfs/FileStore/shared_uploads/path/'

glob function 将与附加到驱动程序的原始文件系统一起使用,并且不知道dbfs:是什么意思。

另外,既然你正在组合很多 csv 文件,为什么不直接用 spark 读取它们:

path = r'dbfs:/FileStore/shared_uploads/path/*.csv' 
df = spark.read.csv(path)

在读取 DBFS 位置时,我们应该像这样读取dbutils命令。

files = dbutils.fs.ls('/FileStore/shared_uploads/path/')
li = []
for fi in files: 
  print(fi.path)
  <your logic here>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM