У меня есть 3 таблицы в улье:Сравнение двух таблиц в энцефалопатией
- Control_table, с известными данными
- New_table, с данными, чтобы проверить
- Result_table, таблица, где записи с различными значениями в new_table затем control_table вставляются в
Все три таблицы имеют одинаковые имена столбцов (которые я на самом деле нет по соображениям безопасности), а также количество столбцов и те, которые:
c1, c2, c3, c4, c5, c6, c7
Где c1 выступает в качестве первичного ключа.
Теперь мне нужно собрать SQL-запрос для HIVE, чтобы сравнить две таблицы (control_table с new_table) и строки, которые имеют разные значения для перемещения в таблицу результатов. Теперь таблица результатов имеет такое же количество столбцов, что и new_table или control_table. Если возможно, я бы хотел заполнить только столбцы, которые на самом деле разные.
Так Примером этого может быть:
Control_table: c1 | c2 | c3 | c4 | c5 | c6 | c7 |
With a values: 11 | 22 | 33 | 44 | 55 | 66 | 77 |
New_table: c1 | c2 | c3 | c4 | c5 | c6 | c7 |
With values: 11 | 21 | 33 | 44 | 54 | 66 | 87 |
Сравните их и результат вставки в result_table, поэтому таблица результатов будет выглядеть следующим образом:
Result_table: c1 | c2 | c3 | c4 | c5 | c6 | c7 |
With values: 11 | 21 | -- | -- | 54 | -- | 87 |
Таким образом, только столбцы с фактической разницей в стоимости будет заселено.
Теперь я мусор в SQL, я попробовал несколько подходов и попытался задать вопрос здесь, но есть никогда не хороший ответ, вот ссылка на мой предыдущий ответ, который имеет также пример SQL:
How to compare two tables and return rows with difference with HIVE
PS: Возможно, это невозможно, я не уверен, поскольку у меня нет предыдущих впечатлений от NoSQL.
Хотя вы уже упоминали, чтобы изменить код, еще тогда и остальное значения должны быть заменены на ответьте на исходный вопрос. –