spark sql合并查询

lnlaulya  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(567)

我正在努力 MERGE 两个表使用sparksql,语句出错。
这些表被创建为指向azure adls存储的外部表。sql正在使用databricks执行。
表1:

Name,Age.Sex
abc,24,M
bca,25,F

表2:

Name,Age,Sex
abc,25,M
acb,25,F

表1是目标表,表2是源表。在表2中,我有一个insert和一个update记录,需要与源表1合并。
查询:

MERGE INTO table1 using table2 ON (table1.name=table2.name)
WHEN MATCHED AND table1.age <> table2.age AND table1.sex<>table2.sex
THEN UPDATE SET table1.age=table2.age AND table1.sex=table2.sex
WHEN NOT MATCHED 
THEN INSERT (name,age,sex) VALUES (table2.name,table2.age,table2.sex)

是sparksql支持合并还是有其他方法实现它?
谢谢,萨特

bt1cpqcv

bt1cpqcv1#

要使用merge,您需要delta-lake选项(以及相关的jar)。然后可以使用合并。
否则,spark不支持sql合并。然后需要具有自己逻辑的dataframe writer api。有几种不同的方法可以做到这一点。即使使用orc酸,Spark也不会以这种方式工作。

相关问题