Выбор ответа Middle merge, join и concat обновлено

Параметр validate в merge

Вопрос

Что сделает orders.merge(users, on="user_id", validate="many_to_one"), если в users один user_id встречается дважды?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Выбросит MergeError. validate проверяет кратность ключей и падает с MergeError, если правая сторона не уникальна.

Варианты ответа

  1. Оставит первую запись из дублей
  2. Выдаст предупреждение и продолжит
  3. Выбросит MergeErrorправильный ответ
  4. Проигнорирует проверку для left join

Разбор

validate проверяет кратность ключей и падает с MergeError, если правая сторона не уникальна. Он не чистит дубли и не ограничивается предупреждением, и от how не зависит. Это дешёвая страховка от размножения строк.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.