java Spark:如何减少从S3读取文件的时间?

k5ifujac  于 2023-08-02  发布在  Java
关注(0)|答案(1)|浏览(109)

我需要读取S3中的JSON文件并处理它们。S3的一个目录中大约有120,000个JSONL文件。每个文件的大小大约为1.6MB。
我的Spark代码很简单:

spark.read().json(s3DirectoryPath)

字符串
这将触发两个作业:
1.列出作业
1.读取作业


的数据
我的问题是列表工作需要很多时间(大约2小时)。如何优化这一点?
另外,我看到spark决定形成10,000个任务来列出文件。Spark是如何决定任务数量的?这是否可以调整以给予更好的性能?
注意:将多个文件合并为大文件对我来说不是一个选择。
环境详情:
AWS EMR
2个m5.xlarge机器中的2个执行器

7gcisfzg

7gcisfzg1#

我以前遇到过同样的问题。最后,我通过boto3手动列出了所有文件,并将字符串列表放入spark.read.parquet。这为我节省了大量的时间。

相关问题