Я делаю левое соединение (левое соединение B) между двумя таблицами A и B и записываю результаты в финальную таблицу.Левая таблица A имеет уникальные строки, а таблица B имеет одну строку для каждого идентификатора.Когда я запускаю приведенный выше запрос на соединение слева, я получаю дубликаты (неизвестные из таблицы B. Они физически не существуют в таблице B) в конечном выводе.Подозрительным является то, что в конечном результате появляются строки, которых нет в таблице B. Я пытался протестировать запрос несколькими способами.
Типы юнит-тестов:
- Взял небольшой пример и применил предложение WHERE для обеих таблиц A, B и выполнил запрос.Дупликации нет, и ожидаемые результаты выдаются без дуплексов.
- Взял небольшую выборку только для таблицы A и выполнил левое соединение с B, в котором есть все данные и выполнен запрос.В конечном результате дупс (дупсы приходят с неизвестными данными, которых нет в таблице B) записаны в новую таблицу Hive без разбиения.
- Взял небольшой образец только для таблицы A и выполнил левое соединение с Bкоторый имеет все данные и выполнил запрос.Конечный результат имеет дупс (дупсы приходят с неизвестными данными, которых нет в таблице B) (просто запустил только запрос SELECT)
Может кто-нибудь поделиться своими мыслями, почему это может происходить?