Может кто-нибудь объяснить мне это?
Обратная сторона, однако, заключается в том, что для преобразований, которые не могут гарантировать создание известного разбиения, в выходном СДР не будет установлен разделитель. Например, если вы вызываете map () для RDD с хэш-разделением пар ключ / значение, функция, переданная в map (), может теоретически изменить ключ каждого элемента, поэтому в результате не будет разделителя. Spark не анализирует ваши функции, чтобы проверить, сохраняют ли они ключ. Вместо этого он предоставляет две другие операции, mapValues () и flatMap Values (), которые гарантируют, что ключ каждого кортежа останется прежним.
Источник Изучение искры от Матей Захария, Патрик Венделл, Энди Конвински, Холден Карау .