Как вставить новые строки в секционированную таблицу и заменить значения, которые уже существуют в Hive - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть секционированная таблица (по идентификатору), которая содержит следующее:

Name,ID,PASS
A,1,abc
B,2,dfg
C,3,jkl

Я хочу вставить новые строки в вышеприведенную таблицу, но также обновить старую (если она существует).

То, что я хочу добавить:

NAME,ID,PASS
D, 4, asd
B, 2, kkk
C, 3, rrr

Как вы можете видеть, наблюдения B и C являются обновлениями старой таблицы, и в качестве окончательного варианта я хочу получить следующее:

Name,ID,PASS
A, 1, abc  # existed and stay as it was
B, 2, kkk  # existed but replaced with the new PASS
C, 3, rrr  # existed but replaced with the new PASS
D, 4, asd  # not existed and has appended

В результате мы обновили старые строки, которые были общими с таблицей, которую мы хотели добавить, а также добавили новые строки.

Я попытался использовать INSERTКоманда OVERWRITE в Hive, но это просто заменило новую таблицу на старую, потеряв информацию, которую я хотел сохранить.Любые предложения о том, как это можно сделать в Улей?

...