问题:Azure Databricks的此文档描述了可以使用dbutils在Databricks File System [DBFS]
上执行的任务。有没有一种简单的方法可以找到DBFS
内文件夹中的文件总数?
您可以使用两种方法来获取计数值:
选项1:
dbutils.fs.ls()
以列表的形式返回指定路径中存在的所有文件的文件信息。
在此返回的列表中使用len((获取该路径中的文件数
len(dbutils.fs.ls('/FileStore/tables/'))
或
选项2:
import os
paths =os.listdir('/dbfs/FileStore/tables')
print(len(paths))
更新:
此代码将只返回路径中存在的文件数。
import os
contents = os.listdir('/dbfs/FileStore/tables')
cnt=0
for content in contents:
#Concat file name and path to check if it is a file name or not.
if(os.path.isfile('/dbfs/FileStore/tables/'+content)):
cnt+=1
print(cnt)
Glob的文件匹配模式也有助于确定某些文件类型或避免列出目录名:
from glob import glob
len(
glob("/dbfs/mnt/raw/datasource/dataset/*.parquet")
)
Out[17]: 47
此外,它还有可选的递归搜索:recursive=True