Есть несколько способов достичь этого. Вот пример использования полного внешнего соединения:
from pyspark.sql import functions as F
output = staging.join(
target,
on='key',
how='full'
).select(
*(
F.coalesce(staging[col], target[col]).alias(col)
for col
in staging.columns
)
)
Это работает, только если обновленное значение не NULL
.