Использование coalesce (1) занимает слишком много времени для записи набора данных в s3

Я использую coalesce (1) для записи набора записей в ведре s3 в процессе csv. что занимает слишком много времени для 505 записей.

dataset.coalesce(1).write().csv("s3a://bucketname/path");

И я хочу упомянуть, что перед этим процессом записи у меня есть процесс шифрования, который изменяет значение некоторых полей строки набора данных. там я использую repartion (200). В качестве

dataset.javaRDD().repartition(200).map(r -> func());

если я пропущу процесс шифрования, процесс записи не займет ни минуты. Какая проблема вызывает замедление процесса?
Как я могу увеличить производительность?

если необходимы разъяснения, спрашивайте

Sandeep kushwaha 31.10.2018 20:14
2
1
186
1

Ответы 1

Всегда избегайте использования coalesce (1) вместо использования partition by, я полагаю, что функция, которую вы используете для шифрования данных, занимает много времени, поскольку она должна перебирать все записи, которые вы могли бы изменить на плоскую карту и проверить преформность

Прошу проверить карта и плоская карта

Добро пожаловать в сообщество, пожалуйста, примите ответ, если он окажется полезным.

Другие вопросы по теме