2016-01-28 6 views
1

A Spark RDD содержит коллекцию, каждый элемент представляет запрос.Spark reference table

Функция Scala будет передана в RDD, и для каждого элемента RDD эта функция создаст модифицированный запрос.

Для каждого элемента коллекции \ request необходимо найти справочную таблицу. Максимальный размер справочной таблицы будет 200 строк.

Какова эффективность и масштабируемость, как должна быть смоделирована таблица поиска (которая используется внутри функции)?

  1. Spark Broadcast variable.
  2. Отдельная искра RDD.
  3. Scala неизменной коллекции.

Возможно, есть еще один вариант, который я не рассматривал.

Благодаря

ответ

0

Это зависит от размера вашего РДА, но дает, что ваша справочная таблица будет иметь около 200 строк, я думаю, что лучший вариант был бы использовать переменное вещание.

Если вы использовали отдельный RDD, вы можете сделать искру, чтобы переделать запрос RDD и сделать обычную перетасовку.

+0

О том, были ли данные сохранены в виде коллекции в функции Scala. Когда функция передается в RDD (используя карту или foreach), не будет ли распространять данные на каждый раздел и работать так же, как переменная широковещания? – user1052610

+0

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

+0

BTW. есть еще один вариант, который вы не упомянули, который использует mapPartition и получает новый экземпляр драйвера DB для каждого раздела, после чего вы можете запросить таблицу оттуда. Иногда вы можете найти этот подход полезным – rhernando

Смежные вопросы