如何改进 Spark 从 s3 读取(列出)25k 小文件
How to improve reading (listing) 25k of small files from s3 by Spark
我在 Minio S3 上有 25,000 个小文件需要解析。
df = spark.read.text("s3a://bucket/*/*/file*.txt").withColumn("path", input_file_name())
# parsing
# writing to parquet
解析和写入 parquet 的速度很快。但是 s3 api 列出文件花了大约 40 分钟。
问题,如何让listing更快?
我使用 Spark 3.1.1 和 Hadoop 3.2。
这真快:
df = spark.read.option("pathGlobFilter", "file*.txt"). \
option("recursiveFileLookup", "true"). \
text(f"s3a://bucket/").withColumn("path", input_file_name())
我在 Minio S3 上有 25,000 个小文件需要解析。
df = spark.read.text("s3a://bucket/*/*/file*.txt").withColumn("path", input_file_name())
# parsing
# writing to parquet
解析和写入 parquet 的速度很快。但是 s3 api 列出文件花了大约 40 分钟。 问题,如何让listing更快?
我使用 Spark 3.1.1 和 Hadoop 3.2。
这真快:
df = spark.read.option("pathGlobFilter", "file*.txt"). \
option("recursiveFileLookup", "true"). \
text(f"s3a://bucket/").withColumn("path", input_file_name())