Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / NoSQL, Big Data Новый топик    Ответить
 Вопрос по производительности isin в spark  [new]
Александр Бердышев
Member

Откуда: Санкт-Петербург
Сообщений: 299
Коллеги, добрый день.

Возник вопрос: в спарке есть датасет со столбцом типа int
и у нас есть list, содержащий несколько int значений: val1, val2, val3


Один мой знакомый просто делает dataset.filter(column.isin(vList:_*))

На мой взгляд, в этот момент vList раскрывается в строку со значениями через запятую (val1,val2,val3), после чего значение из колонки приводится к строке, и идёт текстовый поиск вхождения значения из колонки в получившуюся строку (val1,val2,val3)

Я же в таком случае предлагаю явно указать все параметры через логический ИЛИ: dataset.filter(column === val1 || column === val2 || column === val3)
В этом случае во первых будет меньше операций преобразования типов, во вторых будут сравнения чисел, а не строк, в третьих - будут использоваться все доступные индексы.

Кто в этом хорошо разбирается - можете подсказать, кто из нас прав, а кто заблуждается?
6 фев 19, 19:34    [21803035]     Ответить | Цитировать Сообщить модератору
Все форумы / NoSQL, Big Data Ответить