validate проверяет кардинальность: 1:1, 1:m, m:1, m:m; при нарушении — MergeError. Это защита от неожиданного раздувания строк.
Разбор
- Перед merge смотрите
duplicated на ключах справочника.
- m:m без намерения — частый источник багов в метриках.
indicator=True показывает left_only/right_only/both.
- Сюрприз роста строк = почти всегда плохо заданный ключ.
Итог
validate делает неявную кардинальность явной и падает рано.