我在 HDFS 中有一个这样的目录结构:
folder
├── sub1
│ ├── a
│ │ └── f1.txt
│ └── b
│ └── f2.parquet
└── sub2
├── a
│ └── f3.jpg
└── b
└── f4.unknown
有没有办法在使用 spark.txt 阅读时跳过一些文件(带有一些未知扩展名)。我可以读取目录中存在的所有文件吗?
Spark 提供了不同的读取 API 来处理不同的文件格式。
例子:
如果你想阅读 txt/csv 文件,你可以使用 spark.read.text 或 spark.read.csv 方法。对于 json 格式,您可以使用 spark.read.json,对于 parquet spark.read.parquet 等。您需要使用与文件格式相关的方法来获取正确的数据帧。
Spark 版本 < 3.0.0
假设您在问题中指定的文件夹结构下有不同格式的文件。您需要使用以下代码才能读取 csv 文件。
spark.read.csv("folder/sub1/a/*.csv", "folder/sub2/a/*.csv","folder/sub1/b/*.csv", "folder/sub2/b/*.csv")
火花版本 >=3.0.0
在此版本中,您可以使用 pathGlobFilter、recursiveFileLookup 等选项,而不是指定每个子文件夹路径,并仅将父文件夹路径传递给 read 方法。阅读本文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句