У меня есть два фрейма данных, я хочу проверить, содержит ли df1 какую-либо строку в df2, где ключом является a и b, если равно, то изменение существует на true в df2 и добавить новые строки из df1 с существующим False
df1
a | b | c | d
1 | 1 | 3 | 4
2 | 2 | 4 | 1
3 | 3 | 5 | 3
df2
a | b | c | d
1 | 1 | 4 | 5
4 | 4 | 3 | 2
это должно выглядеть как
df3
a | b | c | d | exists
1 | 1 | 4 | 5 | True
4 | 4 | 3 | 2 | False
1 | 1 | 3 | 4 | False
2 | 2 | 4 | 1 | False
3 | 3 | 5 | 3 | False
пока что у меня есть это
val newdf = df1.join(df2, df1("a")===df2("a") && df1("b") === df2("b"), "left")
.select(df2("a"), df2("b"),df2("c"),df2("d"),when(df2("a").isNull, false).otherwise(true).alias("exists"))
, который возвращает
a | b | c | d | exists
1 | 1 | 4 | 5 | True
rest of the rows are null