如何将较小的S3文件合并为较大的文件(较大的文件)

时间:2019-11-15 16:13:55

标签: amazon-web-services apache-spark amazon-s3 hive

由于输入分区很大,读取数据时我在Spark中遇到问题,并且在Spark中收到Slow Down 503错误。

与AWS团队联系后,他们提到由于请求率太高,这种情况在读取文件时发生。

他们提供的解决方案之一是将小文件合并为更大的文件,这样我们就可以减少文件数量。有谁知道如何将S3中的小文件合并为更大的文件?有任何实用程序可以做到这一点吗?

请注意,我不是指一个分区下的小零件文件。说我有1级分区为Created_date和2级分区VIN。每个VIN下都有一个零件文件,但是VIN的分区过多。因此,我正在研究是否可以将S3中的几个VIN零件文件合并到通用CSV中,然后才能解决S3速度变慢的问题。

非常感谢您的回答!。

感谢和问候, 拉加夫·钱德拉·谢蒂(Raghav Chandra Shetty)

1 个答案:

答案 0 :(得分:0)

首先,我对“火花”不熟悉。

无法在S3中合并文件。 S3只是按原样放置文件的地方。我认为AWS支持告诉您的是,只需减少文件数量,就可以减少拨打电话的次数。因此,取决于您自己,然后再将文件上传到S3,然后再放大(合并)。通过将更多数据放入每个文件或创建tarball / zip。

下载速度为100 MB的文件1个,然后下载100 MB的1MB的文件,可以获得更快甚至更快的速度,以及节省您的请求限制。然后,您可以开始利用S3的MultiPart上传/下载功能。