Как обновить дельта-таблицу Databricks с внутренним объединением в Databricks с помощью Spark SQL - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно обновить столбец таблицы с внутренним объединением с другой таблицей. Я попытался использовать приведенный ниже sql. Но я получаю ошибку в Databricks as (Ошибка в выражении SQL: ParseException: несоответствующий ввод '', ожидающий 'WHEN'). Я пробовал разные способы обновления таблицы. Может ли кто-нибудь помочь мне в этом вопросе, как это исправить?

%sql
merge into test a using test_1 b
on (a.id_num=b.id_num)
when matched then
update set a.name=b.name;

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

Если я правильно понял ваш вопрос, вы хотите использовать кирпичи данных, объединяющиеся в конструкцию, чтобы обновить столбцы таблицы 1 (скажем, пункт назначения), соединив его с другой таблицей 2 (источник)

MERGE INTO destination, используя обновления ONdestination.primary_key = source.foregin_key ПРИ СООТВЕТСТВИИ С ПОТОМ ОБНОВЛЕНИЯ УСТАНОВКИ column1 = updates.column1

Тот же запрос может быть расширен и для вставки данных, если в исходной и целевой таблицах нет строки перехода.

  • Примечание. Мой ответ основан на предположении, которое я сделал в начале.Если вы сможете продолжить работу, это поможет лучше понять вашу проблему
0 голосов
/ 16 февраля 2019

Это из-за версии Databricks Runtime. Вам нужно использовать Databricks Runtime version 5.1 или выше для запроса в Delta Table.Но для операции слияния сначала нужно иметь таблицу Delta.

0 голосов
/ 14 февраля 2019

Ваш стол должен быть в формате DELTA .

Я думаю, что ваша команда в порядке.

https://docs.databricks.com/spark/latest/spark-sql/language-manual/merge-into.html

...