Что такое LEFT SEMI JOIN и LEFT ANTI JOIN в Spark SQL, приходилось ли использовать?

LEFT SEMI JOIN возвращает строки слева, для которых есть совпадение справа; LEFT ANTI JOIN — строки без совпадения. Колонки правой стороны не выводятся.

Короткий ответ

Что ответить на собеседовании

LEFT SEMI JOIN возвращает строки слева, для которых есть совпадение справа; LEFT ANTI JOIN — строки без совпадения. Колонки правой стороны не выводятся.

Подробный разбор

Ответ с пояснениями

LEFT SEMI JOIN возвращает строки слева, для которых есть совпадение справа; LEFT ANTI JOIN — строки без совпадения. Колонки правой стороны не выводятся.

SEMI JOIN удобен для отбора клиентов, имеющих заказы, ANTI JOIN — клиентов без заказов. Множество совпадений справа не размножает одну исходную строку слева, как это мог бы сделать обычный JOIN.

SELECT c.*
FROM clients c
LEFT ANTI JOIN orders o ON c.id = o.client_id;

При обычном равенстве NULL не совпадает с NULL. Если в задаче нужна другая семантика, задайте её явно. Собственный опыт иллюстрируйте реальным сценарием, а не вымышленным проектом.

Источник: Документация Apache Kafka.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее