A Spark RDD содержит коллекцию, каждый элемент представляет запрос.Spark reference table
Функция Scala будет передана в RDD, и для каждого элемента RDD эта функция создаст модифицированный запрос.
Для каждого элемента коллекции \ request необходимо найти справочную таблицу. Максимальный размер справочной таблицы будет 200 строк.
Какова эффективность и масштабируемость, как должна быть смоделирована таблица поиска (которая используется внутри функции)?
- Spark Broadcast variable.
- Отдельная искра RDD.
- Scala неизменной коллекции.
Возможно, есть еще один вариант, который я не рассматривал.
Благодаря
О том, были ли данные сохранены в виде коллекции в функции Scala. Когда функция передается в RDD (используя карту или foreach), не будет ли распространять данные на каждый раздел и работать так же, как переменная широковещания? – user1052610
Вы будете сериализовать весь метод, а также еще несколько метаданных, которые могут иметь худшую производительность. – rhernando
BTW. есть еще один вариант, который вы не упомянули, который использует mapPartition и получает новый экземпляр драйвера DB для каждого раздела, после чего вы можете запросить таблицу оттуда. Иногда вы можете найти этот подход полезным – rhernando