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任务