PySpark能否处理os.walk以迭代子文件夹?
我测试了两个代码示例,它们列出了特定文件夹中的所有文件(如下所示)。但是,两者都不能使用通配符处理子文件夹的迭代 第一次尝试:PySpark能否处理os.walk以迭代子文件夹?,pyspark,databricks,Pyspark,Databricks,我测试了两个代码示例,它们列出了特定文件夹中的所有文件(如下所示)。但是,两者都不能使用通配符处理子文件夹的迭代 第一次尝试: import sys, os root = "/dbfs/mnt/rawdata/2019/01/"+"01"+"/corp/" path = os.path.join(root, "targetdirectory") for path, subdirs, files in os.walk(root): for name in files: p
import sys, os
root = "/dbfs/mnt/rawdata/2019/01/"+"01"+"/corp/"
path = os.path.join(root, "targetdirectory")
for path, subdirs, files in os.walk(root):
for name in files:
print(os.path.join(path, name))
第二次尝试:
import os
for root, dirs, files in os.walk("/dbfs/mnt/rawdata/2019/01/01/corp/"):
print(root)
print(dirs)
print(files)
因此,在本例中,/01/01/
表示1月1日(非常明显)。有没有办法一次列出一月份的所有文件?我和Databricks和PySpark一起工作。谢谢 是的,先生
它确实迭代
import os
EXT = 'File_Name'
PATH = 'Path_Name'
for subdir, dirs, files in os.walk(PATH):
for filename in files:
filepath = subdir + os.sep + filename
if filepath.endswith(EXT):
print (filepath)
请检查缩进我看不出pyspark是如何影响这一点的,但是os.walk将遍历根路径的所有子文件夹。您只是将一月的子文件夹用作根目录,它永远不会“脱离”根路径。。。如果您想要所有1月份的文件,请尝试使用“/dbfs/mnt/rawdata/2019/01/”作为root!!当然为什么是Pypark??这是一个简单的Python任务