Получение ошибки при выполнении оператора MERGE в Hive - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь обновить таблицу2, используя определенное условие, но получаю следующую ошибку при использовании оператора MERGE в HIVE.

Кто-то, пожалуйста, посмотрите на мою ошибку и предоставьте решение или исправьте меня, если какие-либо ошибки взапрос.

MERGE INTO TABLE1 A1
USING TABLE2 A2
ON A1.PROJECT_ID=A2.PROJECT_ID 
   AND A1.GREENFIELD_STATUS_CODE=A2.GREENFIELD_STATUS_CODE 
   AND A1.COUNTRY_CODE=A2.COUNTRY_CODE 
   AND A1.PROJECT_NME=A2.PROJECT_NME
WHEN MATCHED THEN UPDATE SET A1.DATETIME_STAMP=A2.DATETIME_STAMP;

Для вышеупомянутого запроса я получаю эту ошибку:

HiveServer2Error: Ошибка при компиляции оператора: FAILED: ParseException строка 24:31 не соответствует вводу '.'ожидание = около 'A1' в предложении WHEN MATCHED THEN "

Так что здесь я не могу понять, в чем проблема

1 Ответ

0 голосов
/ 11 октября 2019

В вашем операторе match удалите A1 псевдоним, поскольку оператор Merge не ожидает псевдоним.

Попробуйте с этим оператором:

MERGE INTO TABLE1 A1
USING TABLE2 A2
ON A1.PROJECT_ID=A2.PROJECT_ID 
   AND A1.GREENFIELD_STATUS_CODE=A2.GREENFIELD_STATUS_CODE 
   AND A1.COUNTRY_CODE=A2.COUNTRY_CODE 
   AND A1.PROJECT_NME=A2.PROJECT_NME
WHEN MATCHED THEN UPDATE SET DATETIME_STAMP=A2.DATETIME_STAMP;

См. эту статью для получения более подробной информации о стратегии Hive-Merge.

...