Получение анонимных данных (физически не существует) из запроса Hive в окончательных результатах (A LEFT JOIN B) - PullRequest
0 голосов
/ 02 октября 2018

Я делаю левое соединение (левое соединение B) между двумя таблицами A и B и записываю результаты в финальную таблицу.Левая таблица A имеет уникальные строки, а таблица B имеет одну строку для каждого идентификатора.Когда я запускаю приведенный выше запрос на соединение слева, я получаю дубликаты (неизвестные из таблицы B. Они физически не существуют в таблице B) в конечном выводе.Подозрительным является то, что в конечном результате появляются строки, которых нет в таблице B. Я пытался протестировать запрос несколькими способами.

Типы юнит-тестов:

  1. Взял небольшой пример и применил предложение WHERE для обеих таблиц A, B и выполнил запрос.Дупликации нет, и ожидаемые результаты выдаются без дуплексов.
  2. Взял небольшую выборку только для таблицы A и выполнил левое соединение с B, в котором есть все данные и выполнен запрос.В конечном результате дупс (дупсы приходят с неизвестными данными, которых нет в таблице B) записаны в новую таблицу Hive без разбиения.
  3. Взял небольшой образец только для таблицы A и выполнил левое соединение с Bкоторый имеет все данные и выполнил запрос.Конечный результат имеет дупс (дупсы приходят с неизвестными данными, которых нет в таблице B) (просто запустил только запрос SELECT)

Может кто-нибудь поделиться своими мыслями, почему это может происходить?

...