Это потому, что S3 не файловая система, а хранилище объектов. Он не поддерживает семантику, необходимую для переименования, как HDFS. Сначала Spark записывает выходные файлы во временную папку, а затем переименовывает их. В S3 нет атомарного способа сделать это. Вот почему иногда вы увидите эти ошибки.
Теперь, чтобы исправить это, если ваша среда позволяет, вы можете использовать HDFS в качестве промежуточного хранилища и переместить файлы на S3 для последующей обработки.
Если у вас включено oop 3.1 Вы можете использовать коммиттеры s3a, поставляемые с ним. Более подробную информацию о том, как настроить это, можно найти здесь
Если вы используете более старую версию had oop, вы можете использовать выходной коммиттер S3 для Spark, который в основном использует multi -часть загрузки в mimi c это переименование. Один такой коммиттер, о котором я знаю, это это . Похоже, это не обновляется в последнее время, хотя. Могут быть и другие варианты.