我正在spark/databricks中将一个表中的数据合并到另一个表中。我能做到 update set *
如果选择了所有列,但如果未选择所有列(例如,如果下面查询的dst表中有col9),则此操作失败。有没有一种方法可以在不重复列列表的情况下进行合并 when matched
(即在源查询中按列名匹配)和 when not matched
部分?
merge into demo dst
using (
select distinct
col1,
col2,
col3,
col4,
col5,
col6,
col7,
col8
from
demo_raw
where 1=1
and col1 = 'ac'
and col2 is not null
) src
on src.col1 = dst.col1
when matched then
update set *
when not matched then
insert *
;
1条答案
按热度按时间raogr8fs1#
下面是一个我比较满意的python解决方案:
功能定义:
呼叫示例: