Присоединяйтесь к 2 PairRDD без перемешивания

1

У меня есть 2 PairRDD: rddA, который имеет огромный размер и rddB, который намного меньше. Мне нужно присоединиться к ним с помощью ключа, чтобы я мог продолжить итерацию по парам элементов этих PairRDD, соответствующих одному и тому же ключу. Метод соединения PairRDD #, кажется, именно то, что мне нужно, но я вижу, что он включает перетасовку, что приводит к написанию огромных объемов данных в HDFS и частым ошибкам вне памяти. Есть ли способ избежать перетасовки?

Теги:
apache-spark
hadoop

1 ответ

1
Лучший ответ

Чтобы уменьшить перетасовку данных, необходимо размещать их на одних и тех же узлах кластера.

  • Управление разделением на уровне источника данных и/или с использованием оператора.partition
  • Если небольшое RDD может поместиться в память всех работников, то использование широковещательной переменной - это более быстрый вариант

Некоторые указатели, которые помогли мне:

  • 0
    Спасибо за вклад! Я проверю, поможет ли это.
  • 0
    Кстати, разве элементы RDD с одинаковыми ключами не расположены на одном узле кластера по умолчанию?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню