Я пытаюсь реализовать запрос улья, который попытается обновить значения даты для записей, которые недавно были добавлены в таблицу.
Я получил фрагмент кода здесь https://blog.cloudera.com/update-hive-tables-easy-way-2/
Я пытаюсь реализовать SDR типа 2.
Вот мои таблицы
Ниже приведен запрос, который я выполняю
merge into contacts_target
using (
-- The base staging data.
select
contacts_update_stage.id as join_key,
contacts_update_stage.* from contacts_update_stage
union all
-- Generate an extra row for changed records.
-- The null join_key means it will be inserted.
select
null, contacts_update_stage.*
from
contacts_update_stage join contacts_target on contacts_update_stage.id = contacts_target.id
where
( contacts_update_stage.email <> contacts_target.email or contacts_update_stage.name <> contacts_target.name )
and contacts_target.valid_to is null
) sub
on sub.join_key = contacts_target.id
when matched
and sub.email <> contacts_target.email or sub.name <> contacts_target.name
then update set valid_to = current_date()
when not matched
then insert values (sub.id, sub.name, sub.email, current_date(), null);
Я получаю сообщение об ошибке
Вершина не удалась из-за OWN_TASK_FAILURE, failTasks: 1 killTasks: 0, Vertex vertex_1582200340475_2730_40_08 [Редуктор 5] убит / не удалось из-за: OWN_TASK_FAILURE] DAG не удалось из-за VERTEX_FAILURE. failedVertices: 1 killVertices: 0 (state = 08S01, code = 2)
Я пробовал разные вещи, например, использовать левое внешнее соединение вместо слияния, думая, что с запросом что-то не так, но пока получить ответ.