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