Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2022 03:41 AM
I haven't tried but I suspect it will fail with the same message on INSERT because uc.dl_id is NULL for some rows and `whenNotMatchedInsertAll` will attempt to insert a value for dl_id field instead of generating one (as if it has been user provided).
In the meantime I found a workaround: explicitly set the column mapping and do not include one for `dl_id`.
cols2update is a dict with column mapping except dl_id, it works.
t.alias("ec").merge(df.alias("uc"), "ec.dl_id = uc.dl_id") \
.whenMatchedUpdate(set=cols2update) \
.whenNotMatchedInsert(values=cols2update) \
.execute()