Искра декартова не вызывает перемешивания?
Итак, я попытался протестировать операции Spark, которые вызывают перестановки, на основе этого сообщения стека overflow: LINK. Тем не менее, это не имеет смысла для меня, когда cartesian
операция не вызывает перетасовки в Spark, поскольку они должны перемещать разделы по сети, чтобы соединить их локально.
Как Spark на самом деле делает это cartesian
а также distinct
операции за сценой??
1 ответ
Shuffle - это операция, специфичная для СДР пар ключ-значение (RDD[(T, U)]
обычно описывается как PairRDDs
или же PairwiseRDDs
) и более или менее эквивалентно шаффл-фазе в Hadoop. Цель случайного воспроизведения - переместить данные конкретному исполнителю на основе значения ключа и Partitioner
,
В Spark существуют различные типы операций, которые требуют сетевого трафика, но не используют тот же тип логики, что и случайное, и не всегда требуют пары ключ-значение. Декартово произведение является одной из этих операций. Он перемещает данные между машинами (на самом деле это вызывает гораздо более дорогие перемещения данных), но не устанавливает отношения между ключами и исполнителями.