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

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

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

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

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

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

1 Ответ

0 голосов
/ 02 ноября 2018

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

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

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

...