如何在Spark中一次性读取多种类型的文件?
一次Spark操作读取多种文件类型的实现方法
当然可以!Spark的pathGlobFilter参数支持直接传入多个用逗号分隔的通配符模式,完全不用写循环逐个读取再做union操作。
针对你需要读取.txt和.inf文件的场景,直接修改代码即可:
from pyspark.shell import spark load_folder = '...' general_df = spark.read.format("text") \ .option("pathGlobFilter", "*.txt,*.inf") \ .option("recursiveFileLookup", "true") \ .load(load_folder) general_df.show()
补充说明
pathGlobFilter接受逗号分隔的多个匹配规则,Spark会自动扫描目标目录(含子目录,因为开了recursiveFileLookup),加载所有符合任一规则的文件- 因为你读取的都是文本格式,用
format("text")统一处理完全没问题;如果是同时读取不同格式的文件(比如文本和Parquet),这种方法就不适用了,得分别读取后再合并,但你的场景刚好是单一格式多后缀,完美适配这个方案。
内容的提问来源于stack exchange,提问作者MariaMsu
相关产品推荐
相关产品推荐

