我必须使用与其他表的内连接来更新表列。我尝试使用下面的 sql。但我在 Databricks 中遇到错误(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;
我必须使用与其他表的内连接来更新表列。我尝试使用下面的 sql。但我在 Databricks 中遇到错误(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;
这是因为 Databricks 运行时版本,您需要使用Databricks Runtime version 5.1
或以上版本来查询 Delta Table。但是对于合并操作,首先需要有一个 Delta 表。
您正在使用的查询是正确的。失败的原因是您没有使用增量表,在您的情况下 test 和 test_1 应该是增量表。
您的表格必须是DELTA格式。是吗?
我觉得你的命令没问题。
https://docs.databricks.com/spark/latest/spark-sql/language-manual/merge-into.html
如果我的问题正确,您想使用数据块合并到构造中,通过将表 1(例如目标)列连接到其他表 2(源)来更新表
合并到目的地使用更新目的地.primary_key = source.foregin_key WHEN MATCHED THEN UPDATE SET column1=updates.column1
如果源表和目标表中不存在行进行,则可以扩展相同的查询以插入数据。