0

我必须使用与其他表的内连接来更新表列。我尝试使用下面的 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;
4

4 回答 4

0

这是因为 Databricks 运行时版本,您需要使用Databricks Runtime version 5.1或以上版本来查询 Delta Table。但是对于合并操作,首先需要有一个 Delta 表。

于 2019-02-16T12:49:31.170 回答
0

您正在使用的查询是正确的。失败的原因是您没有使用增量表,在您的情况下 test 和 test_1 应该是增量表。

于 2019-12-10T20:01:23.810 回答
0

您的表格必须是DELTA格式。是吗?

我觉得你的命令没问题。

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

于 2019-02-14T20:06:33.440 回答
0

如果我的问题正确,您想使用数据块合并到构造中,通过将表 1(例如目标)列连接到其他表 2(源)来更新表

合并到目的地使用更新目的地.primary_key = source.foregin_key WHEN MATCHED THEN UPDATE SET column1=updates.column1

如果源表和目标表中不存在行进行,则可以扩展相同的查询以插入数据。

  • 注意-我的回答是基于我一开始所做的假设。如果您可以进一步阐述,这将有助于更好地理解您的问题
于 2019-02-14T20:29:26.020 回答