Salting разбивает слишком частый ключ на несколько искусственных подгрупп, добавляя к нему «соль». Это распределяет нагрузку, которую иначе получила бы одна перегруженная партиция.
Что такое salting в Spark?
Salting разбивает слишком частый ключ на несколько искусственных подгрупп, добавляя к нему «соль». Это распределяет нагрузку, которую иначе получила бы одна перегруженная партиция.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Salting разбивает слишком частый ключ на несколько искусственных подгрупп, добавляя к нему «соль». Это распределяет нагрузку, которую иначе получила бы одна перегруженная партиция.
Для суммы сначала агрегируют по (key, salt), затем по key без соли. Для среднего нужно объединять суммы и количества, а не усреднять средние. При JOIN согласуют размножение или присвоение соли второй стороне, иначе потеряют совпадения. Метод увеличивает объём работы и нужен прежде всего для подтверждённого skew.