|
Вопрос по производительности isin в spark
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Возник вопрос: в спарке есть датасет со столбцом типа 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) В этом случае во первых будет меньше операций преобразования типов, во вторых будут сравнения чисел, а не строк, в третьих - будут использоваться все доступные индексы. Кто в этом хорошо разбирается - можете подсказать, кто из нас прав, а кто заблуждается? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2019, 19:34 |
|
|
start [/forum/topic.php?fid=48&fpage=3&tid=1856598]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 170ms |
0 / 0 |